例:
package deep;
public class Client {
public static void main(String[] args) {
String str1 = 1 + 2 + " apples";
String str2 = "apples:" + 1 + 2;
System.out.println(str1);
System.out.println(str2);
}
}
運行結果:
3 apples
apples:12
爲什麼兩次輸出的蘋果數量不一致?這源於Java對加號的處理機制:在使用加號進行計算的表達式中,只要遇到String字符串,,String字符串前面的計算後轉換爲字符串拼接,String字符串後面的數據也被轉變成String類型進行拼接,再看例子:
package deep;
public class Client {
public static void main(String[] args) {
String str1 = 1 + 2 + " apples" + 3 + 4;
String str2 = "apples:" + 1 + 2;
System.out.println(str1);
System.out.println(str2);
}
}
運行結果:
3 apples34
apples:12
對於str2字符串,由於第一個參與運算的是String類型,加上1後的結果是“apples:1”,這仍然是一個字符串,然後再與2相加,其結果還是一個字符串,也就是“apples:12”。這說明如果第一個參數是String,則後續的所有計算都會轉變成String類型。