为什么Java的concat()方法没有做任何事情?

som*_*har 17 java string concat

这段代码:

String s = "TEST";
String s2 = s.trim();

s.concat("ING");
System.out.println("S = "+s);
System.out.println("S2 = "+s2);
Run Code Online (Sandbox Code Playgroud)

结果输出:

S = TEST
S2 = TEST
BUILD SUCCESSFUL (total time: 0 seconds)
Run Code Online (Sandbox Code Playgroud)

为什么"TEST"和"ING"没有连接在一起?

nos*_*nos 47

String是不可变的,这意味着您无法在Java中更改String.concat()返回一个新的连接字符串.

String s = "TEST";
String s2 = s.trim();
String s3 = s.concat("ING");

System.out.println("S = "+s);
System.out.println("S2 = "+s2);
System.out.println("S3 = "+s3);
Run Code Online (Sandbox Code Playgroud)

  • @soma sekhar,如果这个答案解决了你的问题,你应该接受它. (3认同)

Jes*_*per 9

因为String是不可变的 - 类String不包含改变String对象本身内容的方法.该concat()方法返回一个String包含操作结果的new .而不是这个:

s.concat("ING");
Run Code Online (Sandbox Code Playgroud)

试试这个:

s = s.concat("ING");
Run Code Online (Sandbox Code Playgroud)