【发布时间】:2018-06-11 23:37:08
【问题描述】:
java byte []b = (i+"").getBytes() 其中i 是整数
int i = 8;
byte []b = (i+"").getBytes();
我看过这行代码,不明白 (i+"") 东西是什么意思。
【问题讨论】:
-
i+""只是将整数转换为字符串对象。
java byte []b = (i+"").getBytes() 其中i 是整数
int i = 8;
byte []b = (i+"").getBytes();
我看过这行代码,不明白 (i+"") 东西是什么意思。
【问题讨论】:
i+"" 只是将整数转换为字符串对象。
i + "" 演示了字符串与int 的连接。
如果你扩大一点。相当于
String s = i+"";
byte []b = s.getBytes();
但是,这样做几乎是一种技巧。除非你真的需要,否则不要选择串联。
改用重载方法valueOf(int i)。
byte []b = String.valueOf(i).getBytes();
这使您更具可读性和简洁性。
【讨论】:
您想从 String 表示的 int 值中获取 bytes。
所以你需要一个String。
通过将int 值与产生String 的空String 连接起来,您可以将int 转换为String,然后您可以调用String.getBytes() 将String 编码为字节数组。
15.18.1. String Concatenation Operator +
如果只有一个操作数表达式是字符串类型,那么字符串 对另一个操作数执行转换(§5.1.11)以产生一个 运行时的字符串。
一种更高效、更优雅的方式是:
byte[] b = String.valueOf(i).getBytes();
【讨论】:
(i + "")只是将int转换为String的一种方式,相当于:
String.valueOf(i)
【讨论】: