我想在我的Android应用程序中实现一些东西。我需要在我的类中创建一个String变量的HEX表示,并将其转换为字节数组。像这样:
String hardcodedStr = "SimpleText";
String hexStr = someFuncForConvert2HEX(hardcodedStr); // this should be the HEX string
byte[] hexStr2BArray = hexStr.getBytes();
之后我希望能够将此hexStr2BArray
转换为String并获取它的值。像这样:
String hexStr = new String(hexStr2BArray, "UTF-8");
String firstStr = someFuncConvertHEX2Str(hexStr); // the result must be : "SimpleText"
任何建议/建议我如何实现这一目标。另外,我应该能够转换那个hexString,并在任何其他平台上获得它的真正价值......比如Windows,Mac,IOS。
答案 0 :(得分:3)
感谢Tim的评论,我正在使用这两个功能。希望对需要它的人有所帮助。
public String convertStringToHex(String str){
char[] chars = str.toCharArray();
StringBuffer hex = new StringBuffer();
for(int i = 0; i < chars.length; i++){
hex.append(Integer.toHexString((int)chars[i]));
}
return hex.toString();
}
public String convertHexToString(String hex){
StringBuilder sb = new StringBuilder();
StringBuilder temp = new StringBuilder();
//49204c6f7665204a617661 split into two characters 49, 20, 4c...
for( int i=0; i<hex.length()-1; i+=2 ){
//grab the hex in pairs
String output = hex.substring(i, (i + 2));
//convert hex to decimal
int decimal = Integer.parseInt(output, 16);
//convert the decimal to character
sb.append((char)decimal);
temp.append(decimal);
}
System.out.println("Decimal : " + temp.toString());
return sb.toString();
}