您没有将ASCII转换为十六进制值.您有char十六进制的值,并且您想将其转换为a String是我如何解释您的问题.
String s = new String(new char[] {
0x31, 0x32, 0x2E, 0x30, 0x31, 0x33
});
System.out.println(s); // prints "12.013"
Run Code Online (Sandbox Code Playgroud)
如果你给了字符串,并且想要将其打印char为十六进制,那么这是如何做到的:
for (char ch : "12.013".toCharArray()) {
System.out.print(Integer.toHexString(ch) + " ");
} // prints "31 32 2e 30 31 33 "
Run Code Online (Sandbox Code Playgroud)
您还可以使用%H格式字符串:
for (char ch : "12.013".toCharArray()) {
System.out.format("%H ", ch);
} // prints "31 32 2E 30 31 33 "
Run Code Online (Sandbox Code Playgroud)
目前尚不完全清楚您在问什么,因为您的“十六进制”字符串实际上是十进制的。我相信您正在尝试获取表示 double 的 ASCII 字符串并以 double 的形式获取其值,在这种情况下使用Double.parseDouble应该足以满足您的需求。如果需要输出 double 值的十六进制字符串,则可以使用Double.toHexString。请注意,每当您调用原始包装类的解析函数之一时,您都需要捕获NumberFormatException 。
byte[] ascii = {(字节)0x31, (字节)0x32, (字节)0x2E, (字节)0x30, (字节)0x31, (字节)0x33};
字符串decimalstr = new String(ascii,"US-ASCII");
double val = Double.parseDouble(decimalstr);
String hexstr = Double.toHexString(val);
| 归档时间: |
|
| 查看次数: |
25604 次 |
| 最近记录: |