Java : 字符串连接

Java : String Concatenation

我找到了这段代码

public class StringDemo {
    public static void main(String[] args) {
        String s = "Hello";  
        s.concat("world");
        System.out.println(s);

    }
}

并认为输出应该是

Helloworld

但它只打印

Hello

这背后的原因是什么?

字符串是不可变对象。这意味着无论您打印多少次,您的 String 都不会改变。那么 concat 方法做了什么呢?当您查看 api (http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#concat(java.lang.String)) 时,您会看到 concat on string 的结果是一个新字符串,因此这会 return 您所期望的:

public class StringDemo {
    public static void main(String[] args) {
        String s = "Hello";  
        String newS = s.concat("world");
        System.out.println(newS);

    }
}