将String格式化为十六进制值并将其附加到char数组中

时间:2014-01-07 04:49:33

标签: java binary hex decimal

我有以下代码。

String test1 = "10";
String result = String.format("%02X", test1);
char buffer[] = {result.charAt(0),0x01,0x00,0x01,0x00,0x20};
byte[] bufferbyte = new String(buffer).getBytes();
for (byte b : bufferbyte){
  System.out.format("0X%x ", b);
}

实际上是字符串变量" test1"包含小数值。我的意思是说用户可以输入1到256个整数位,它存储在" test1"中。我以10为例。我需要在char数组中追加它的十六进制值(0A)," buffer"在它的第一个位置,并将其显示为包含十六进制值的字节数组。

以上代码显示错误为

"Exception in thread "main" java.util.IllegalFormatConversionException: x != java.lang.String"

2 个答案:

答案 0 :(得分:1)

试试这个

    String result = String.format("%02X", Integer.parseInt(test1));

答案 1 :(得分:0)

public class SSCCE
{
    public static void main(final String[] args)
    {
        final String ten = "10";
        final Integer i = Integer.parseInt(ten);
        System.out.format("%02X", i);
    }
}

输出0A

您正在尝试格式化String格式化Integer表示形式。