为什么我不能将Integer.toBinaryString()连接到Java中的另一个字符串?

时间:2016-04-09 02:53:06

标签: java string-concatenation bin

我正在尝试将整数输入转换为二进制字符串,并将它们连接成一个长字符串。例如:

input: 4 5
output: 0100 0101

在检查API并看到toBinaryString返回一个字符串后,我确信我的解决方案应该可以正常工作,但事实并非如此。

我的解决方案:

String str = "5 in binary: ";
str.concat(Integer.toBinaryString(5));

String str = "5 in binary: ";
str + Integer.toBinaryString(5);

其中每一个都会打印出原始字符串“5 in binary:”而不是“5 in binary:0101”。

toBinaryString()返回一个字符串值,如果不是,那么这应该是可能的吗?

1 个答案:

答案 0 :(得分:4)

因为String是不可变对象。 因此str + Integer.toBinaryString(5);不会更改str的内容。它只返回另一个String对象。您需要将新对象分配给str类似的东西:

str = str + Integer.toBinaryString(5);