String.concat()不进行连接

7 java string android 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(" ");
Run Code Online (Sandbox Code Playgroud)

ssa*_*tos 18

concat 不会改变调用字符串,但返回一个新字符串.

您可以String像这样将结果分配给您的结果.-

messages = messages.concat(String.valueOf(random));
messages = messages.concat(" ");
messages = messages.concat(String.valueOf(ch));
messages = messages.concat(" ");
Run Code Online (Sandbox Code Playgroud)

或者只使用重载运算符 +

messages = String.valueOf(random) + " " + String.valueOf(ch) + " ";
Run Code Online (Sandbox Code Playgroud)


Rei*_*eus 10

Strings是不可改变的.您可以使用String连接附加结果,如其他答案中所示,也可以使用StringBuilder

StringBuilder messages = new StringBuilder();
messages.append(String.valueOf(random));
messages.append(" ");
messages.append(String.valueOf(ch));
messages.append(" ");
Run Code Online (Sandbox Code Playgroud)

看看如何在Java中连接两个字符串?


编辑:(在开头插入String)

messages.insert(0, "newstring");
Run Code Online (Sandbox Code Playgroud)


Sta*_*kos 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));
Run Code Online (Sandbox Code Playgroud)