String.concat()不进行连接

时间:2013-09-09 20:33:04

标签: java android string concatenation string-concatenation

我正在尝试将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(" ");

5 个答案:

答案 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的修改