在java語言中所有的字符串都使用半角雙引號括起來的,字符串屬于引用數據類型,不屬于基本數據類型的范疇,怎么定義一個字符串的變量呢?例如:String name = “jack”;,這就類似于int i = 10;是一樣的,int是一種整數類型,i是變量,10是整數型字面量。那么String則是一種字符串類型,name是變量,”jack”是字符串型字面量。在java編程中對字符串的操作是非常頻繁的,例如字符串的連接操作,此時就需要使用“+”字符串連接運算符了。
實際上“+”運算符在java語言中有兩個作用,作用一是對數字進行求和運算,作用二就是字符串連接運算,那么它在什么時候是進行求和,什么時候又進行字符串連接呢?大家可以這樣進行區分,當“+”運算的時候,兩邊的操作數都是數字的話,一定會進行求和運算,只要其中有一個操作數是字符串類型,那么一定會進行字符串拼接運算,字符串拼接之后的結果還是字符串類型。需要注意的是,當一個表達式當中有多個“+”,并且在沒有小括號的前提下,遵循自左向右的順序依次執行。我們來看一段程序:
public class PlusTest01 {
public static void main(String[] args) {
int a = 10;
int b = 20;
//加號兩邊都是int類型,執行求和運算
int c = a + b;
/*
* 以下代碼雖然有兩個加號,第一個加號在雙引號當中,
* 不起任何作用,只是一個普通字符串,第二個加號由于
* 左邊操作數是一個字符串,所以這個加號一定會進行
* 字符串連接,連接之后的結果還是一個字符串。
*/
System.out.println("a + b = " + c); //a + b = 30
//分析以下程序的輸出結果?哪些加號進行求和,哪些加號進行字符串連接
System.out.println(a + " + " + b + " = " + a + b);
//分析以下程序的輸出結果?哪些加號進行求和,哪些加號進行字符串連接
System.out.println(a + " + " + b + " = " + (a + b));
//定義一個字符串類型變量
String name = "jack";
/*
* 字符串拼接在實際開發中很常用,拼接的時候是有口訣,大家記住,
* 將變量放到字符串當中進行拼接,可以這樣做:1、在拼接的位置添加
* 一個英文雙引號;2、在雙引號中間添加兩個加號;3、把字符串變量放到
* 兩個加號中間。
*/
System.out.println("登錄成功,歡迎" + name + "回來!");
}
}
對于程序System.out.println(a + " + " + b + " = " + a + b);的分析見下圖:
圖5-2:字符串連接運算
對于程序System.out.println(a + " + " + b + " = " + (a + b));的分析見下圖:
圖5-3:字符串連接運算
總之,使用“+”進行字符串拼接在開發中使用太頻繁了,大家一定要將其掌握,尤其是怎么將一個變量放到字符串當中,你還記得以上程序的口訣嗎?
其它運算符instanceof、new等在講Java面向對象內容的時候一定會用到,到那時候再詳細學習。