2015-05-19 55 views
0

我發現這個代碼的Java:字符串連接

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

    } 
} 

,認爲輸出應該是

的Helloworld

但只打印

你好

這背後的原因是什麼?

回答

2

String是一個不可變的對象。這意味着無論您打印多少次,您的字符串都不會改變。那麼concat方法是做什麼的呢?當你看api(http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#concat(java.lang.String))時,你可以看到string上的concat結果是一個新的字符串,所以這會返回你所期望的:

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

    } 
}