2014-03-04 200 views
0

我正在開發一個以int []形式發送紅外代碼的應用程序。我有一串十六進制代碼:「0000 0048 0000 0018 00c1 00c0 0031 0090 0031 0090 0031 0030 0031 0090 0031 0090 0031 0090 0031 0090 0031 0090 0031 0030 0031 0030 0031 0030 0031 0030 0031 0030 0031 0090 0031 0030 0031 0030 0031 0030 0031 0030 0031 0030 0031 0090 0031 0090 0031 0090 0031 073b「 我需要將它轉換爲以十進制形式分隔的int []分隔符。將十六進制代碼字符串轉換爲十進制的int []

String hexCode = "0000 0048 0000 0018 00c1 00c0 0031 0090 0031 0090 0031 0030 0031 0090 0031 0090 0031 0090 0031 0090 0031 0090 0031 0030 0031 0030 0031 0030 0031 0030 0031 0030 0031 0090 0031 0030 0031 0030 0031 0030 0031 0030 0031 0030 0031 0090 0031 0090 0031 0090 0031 073b" 
String decimalCode = hex2dec(hexCode); //I don't know how to convert this and keep the spaces 
String[] decArray = decimalCode.split(" "); 
int[] final = decArray; //Not sure how to do this. Maybe a for loop? 

我一直在這工作了幾個小時,越來越沮喪。我不能從十六進制轉換成十進制字符串,然後我不能把它放到一個int []中。

請幫忙!

+0

我不這麼認爲,因爲我需要一個int []而不是一個字節[] – Jason

+1

一個字節只是一個int的較短版本。他們都擁有一個數值。你應該能夠很容易地翻譯代碼來滿足你的需求。 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html – aliteralmind

+1

你不需要'int []'。你需要一個'short []'。 – tbodt

回答

0

我不確定你的目標是什麼,但是到目前爲止你有正確的想法......但是,不是做一個hex2dec然後拆分你應該顛倒順序,說:先拆分然後轉換。 ...

String hexCode = "0000 0048 0000 0018 00c1 00c0 0031 0090 0031 0090 0031 0030 0031 0090 0031 0090 0031 0090 0031 0090 0031 0090 0031 0030 0031 0030 0031 0030 0031 0030 0031 0030 0031 0090 0031 0030 0031 0030 0031 0030 0031 0030 0031 0030 0031 0090 0031 0090 0031 0090 0031 073b" 

//splitting the hexcode into a string array 
String[] splits = decimalCode.split(" "); 

//getting the length of the string aray, we need this to set 
//the right size of the int[] 
int amount = splits.length(); 

//values are the values wich you're interested in... 
//we create the array with proper size(amount) 
int[] values = new int[amount] 

//now we iterate through the strong[] splits 
for (int i = 0; i < amount; i ++){ 

    //we take a string vrom the array 
    String str = splits[i]; 

    //the we parse the stringv into a int-value 
    int parsedValue = Integer.parseInt(str, 16); 

    //and fill up the value-array 
    values[i] = parsedValue; 
} 
//when we're through with the iteration loop, we're done (so far) 

如上面提到的,我不是很確定你的目標在什麼...這可能會導致錯誤的分析方法......

相關問題