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

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()返回一个String值,所以应该可行吗?

最佳答案

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

str = str + Integer.toBinaryString(5);

07-26 07:48