Java中的String是一種不可變對象,表示了一系列字符。使用String時(shí)需要注意,由于String是不可變的,每次修改String都會創(chuàng)建一個(gè)新的String對象。
switch是一種常用的控制流語句,能夠簡化代碼。在Java 7之前,switch只能使用整數(shù)類型或枚舉類型的變量。但從Java 7開始,switch已經(jīng)可以使用String類型了。
String str = "abc"; switch (str) { case "abc": System.out.println("match abc"); break; case "def": System.out.println("match def"); break; default: System.out.println("no match"); break; }
上面的代碼中,我們使用了String類型的變量str,作為switch語句的判斷條件。在case中,我們可以直接使用String進(jìn)行匹配。這樣可以使代碼更加簡潔易懂。
但需要注意的是,從Java 7開始支持的String類型的switch語句只能使用字符串字面量(如"abc")作為case,而不能使用變量作為case。這是因?yàn)椋诰幾g期間,Java會將字符串字面量轉(zhuǎn)化為String對象進(jìn)行比較,但在運(yùn)行期間,不會對變量進(jìn)行轉(zhuǎn)化。所以,使用變量作為case時(shí),會導(dǎo)致無法進(jìn)行比較。