2016-04-09 34 views
0

我试图将整数输入转换为二进制字符串并将它们连接在一起成为一个长字符串。例如:为什么我不能将Integer.toBinaryString()连接到Java中的另一个字符串?

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:” 而非 “二元5:0101”。

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

+0

字符串是不变的,所以str.concat()不修改海峡,它会创建一个新的String实例,它被扔掉,因为它没有被分配任何事情。 –

+0

谢谢,我爱你。 – user3590350

回答

4

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

str = str + Integer.toBinaryString(5); 
相关问题