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