估計是toBinaryString 或 parseInt 出錯
輸入像 '12AF' 的字串
就會轉出像 '0001001010101111' 的字串
CODE:
public static String GetHexString(String _str){
String _string = "";
char[] _c = _str.toCharArray();
for(int i=0; i < _c.length ; i++){
String _tempString = Integer.toBinaryString(
Integer.parseInt(String.valueOf(_c[i]), 16));
/// 0
for(int j=_tempString.length();j< 4 ;j++){
_tempString = "0"+_tempString;
}
_string += _tempString;
}
return _string;
}
之後只好改成另一種簡單的寫法
public static String GetHEXFormatString(String _str){
String _string = "";
for(int i =0 ; i <_str.length() ; i++ ){
String _tempStr = "";
char x = _str.charAt(i);
switch (x){
case '0':
_tempStr ="0000";
break;
case '1':
_tempStr ="0001";
break;
case '2':
_tempStr ="0010";
break;
case '3':
_tempStr ="0011";
break;
case '4':
_tempStr ="0100";
break;
case '5':
_tempStr ="0101";
break;
case '6':
_tempStr ="0110";
break;
case '7':
_tempStr ="0111";
break;
case '8':
_tempStr ="1000";
break;
case '9':
_tempStr ="1001";
break;
case 'A':
_tempStr ="1010";
break;
case 'B':
_tempStr ="1011";
break;
case 'C':
_tempStr ="1100";
break;
case 'D':
_tempStr ="1101";
break;
case 'E':
_tempStr ="1110";
break;
case 'F':
_tempStr ="1111";
break;
default:
_tempStr ="0000";
}
_string += _tempStr;
}
return _string;
}
沒有留言:
張貼留言