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

标签 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:”,而不是“二进制中的 5:0101”。

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

最佳答案

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

str = str + Integer.toBinaryString(5);

关于java - 为什么我不能将 Integer.toBinaryString() 连接到 Java 中的另一个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36512188/

相关文章:

java - java中如何将一个数转换成2的补数

java - 判断文件是否重复

java.lang.NoClassDefFoundError : ProceedingJoinPoint 错误

r - 有条件地将字符串连接到多行

c# - 如何将包含 1 和 0 的字符串保存到 bin 文件中?

每 32 字节复制一个二进制文件 32 字节

Java:在 SQL 数据库中对事件执行某些操作?

java - 当我们使用 + 运算符连接时创建的新字符串对象在哪里

javascript - 将多个对象属性值连接成一个

c++ - C++ 和 Grep 之间二进制到 ASCII 的不同?