我正在尝试将String与int和char连接在一起,包括空格,但没有得到任何连接。是什么原因?
private String messages;
Random r = new Random();
int random = r.nextInt(1000);
char ch='s';
messages.concat(String.valueOf(random));
messages.concat(" ");
messages.concat(String.valueOf(ch));
messages.concat(" ");
答案 0 :(得分:18)
concat
不会改变调用字符串,但会返回一个新字符串。
您可以将每个结果String
分配给您的结果.-
messages = messages.concat(String.valueOf(random));
messages = messages.concat(" ");
messages = messages.concat(String.valueOf(ch));
messages = messages.concat(" ");
或者只使用重载的运算符+
messages = String.valueOf(random) + " " + String.valueOf(ch) + " ";
答案 1 :(得分:10)
Strings
是不可变的。您可以使用其他答案中显示的String
标题附加结果,也可以使用StringBuilder
StringBuilder messages = new StringBuilder();
messages.append(String.valueOf(random));
messages.append(" ");
messages.append(String.valueOf(ch));
messages.append(" ");
查看How do I concatenate two strings in Java?
编辑:(在String
开头插入)
messages.insert(0, "newstring");
答案 2 :(得分:5)
更好的方法是:
Random r = new Random();
int random = r.nextInt(1000);
StringBuilder str = new StringBuilder(String.valueOf(random));
str.append("s")
str.append(String.valueOf(random))
str.append(" ");
str.append(String.valueOf(ch));
答案 3 :(得分:2)
messages += String.valueOf(random) + " " + String.valueOf(ch) + " ";
答案 4 :(得分:0)
char ch='s';
messages = messages.concat(String.valueOf(random));
messages = messages.concat(" ");
messages = messages.concat(String.valueOf(ch));
messages = messages.concat(" ");
字符串应该是重新分配的,当你编辑一个String对象时,你在String常量池中创建一个新的String对象,但你没有将这个新的String值赋给任何引用变量,所以你需要重新赋值您对创建它们的SAME REFERENCE VARIABLE的修改