Android Java 创建十六进制字符串并将其转换为字节数组并返回

har*_*ore 2 java arrays android hex

我想在我的 Android 应用程序中实现一些目标。我需要在我的类中创建字符串变量的十六进制表示并将其转换为字节数组。像这样的东西:

String hardcodedStr = "SimpleText";
String hexStr = someFuncForConvert2HEX(hardcodedStr); // this should be the HEX string
byte[] hexStr2BArray = hexStr.getBytes();
Run Code Online (Sandbox Code Playgroud)

之后我希望能够将其转换hexStr2BArray为字符串并获取它的值。像这样的东西:

String hexStr = new String(hexStr2BArray, "UTF-8");
String firstStr = someFuncConvertHEX2Str(hexStr); // the result must be : "SimpleText"
Run Code Online (Sandbox Code Playgroud)

任何建议/建议我如何实现这一目标。另一件事,我应该能够转换该 hexString 并在任何其他平台上获得它的真正价值......如 Windows、Mac、IOS。

har*_*ore 5

感谢蒂姆的评论,这是我正在使用的两个函数。希望它对任何有需要的人有所帮助。

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();
}
Run Code Online (Sandbox Code Playgroud)