Java_String_字符串“+”的問題

例:

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類型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章