我有以下代码。
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"
答案 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
表示形式。