更新時間:2023年03月30日16時48分 來源:傳智教育 瀏覽次數(shù):
操作字符串時,經(jīng)常需要對字符串進行一些判斷,如判斷字符串是否以指定的字符串開始、結(jié)束,是否包含指定的字符串,字符串是否為空等。在 String類中針對字符串的判斷操作提供了很多方法,接下來通過二個案例來學習這些判斷方法的使用,如下所示:
public class Example05 { public static void main(String[] args) { String sl="starter"; //聲明一個字符串 String s2 ="St"; System,out.println("判斷是否以字符串 st 開頭:“+s1startswith("St")); System.out.printin("判斷是否以字符串 er結(jié)尾:”+slendswith("er")); System.out.printIn("判斷是否包含字符串 ar;”+scontains("ar")); System.out.println("判斷字符串是否為空:"+sl.isEmpty()); System.out.println("判斷兩個字符串是否相等:”+sl.equals(s2)); } }
上述涉及的方法都是用于判斷字符串的,并且返回值均為 boolean 類型。在所使用的方法中,equals()方法是比較重要的,在 String 類中重寫了父類 Object 中的 equals(方法。
在程序中可以通過==和equals)兩種方式對字符串進行比較,但這兩種方式有明顯的區(qū)別。equals()方法用于比較兩個字符串中的字符值是否相等,-=方法用于比較兩個字符串對象的內(nèi)存地址是否相同。對于兩個字符串對象,當它們的字符值完全相同時,使用equals判斷結(jié)果會是 true,但使用==判斷時,結(jié)果一定為 false。為了便于理解,下面給出示例代碼:
String strl = new String("abc"); String str2 = new String("abc"); //結(jié)果為false,因為 str1和str2是兩個對象 System.out.println(strl ==str2); //結(jié)果為 true,因為strI和 str2字符內(nèi)容相同 System.out.println(strl.equals(str2));