我有以下方法,我在String中设置值“9”。当我把它放在字节中并显示输出时,值就会改变。
void method() {
String s = "9";
byte[] b = s.getBytes();
System.out.println("Byte value is: " + byte[0]);
}
输出:
Byte value is: 57
为什么9会被转换为57?
答案 0 :(得分:3)
答案 1 :(得分:2)
57是字符' 9'
的ASCII码答案 2 :(得分:0)
当你试图从字符中获取字节值时,你只得到ASCII值。
字符' 9' ASCII码是57
答案 3 :(得分:0)
在上面的示例中,您需要首先纠正编译问题: 代码应该是:
System.out.println("Byte value is: " + b[0]);
而不是
System.out.println("Byte value is: " + byte[0];
关于输出,你正在分配" 9"作为字符串并尝试获取byte [],基本上getBytes使用平台的默认字符集将此String编码为字节序列,将结果存储到新的字节数组中。因此你得到" 57"。