字符串的常用方法
阿新 • • 發佈:2018-06-27
區分 lan 堆內存 判斷字符串 dsw [] 忽略大小寫 常量 字符 判斷方法
public class Demo4_StringMethod { /** * boolean equals(Object obj):比較字符串的內容是否相同,區分大小寫 * boolean equalsIgnoreCase(String str):比較字符串的內容是否相同,忽略大小寫 * boolean contains(String str):判斷大字符串中是否包含小字符串 * boolean startsWith(String str):判斷字符串是否以某個指定的字符串開頭 * boolean endsWith(String str):判斷字符串是否以某個指定的字符串結尾 * boolean isEmpty():判斷字符串是否為空。 * * ""和null的區別 * ""是字符串常量,同時也是一個String類的對象,既然是對象當然可以調用String類中的方法 * null是空常量,不能調用任何的方法,否則會出現空指針異常,null常量可以給任意的引用數據類型賦值 */ public static void main(String[] args) { //demo1(); //demo2(); String s1 = "heima"; String s2 = ""; String s3 = null; System.out.println(s1.isEmpty()); System.out.println(s2.isEmpty()); System.out.println(s3.isEmpty()); //java.lang.NullPointerException } private static void demo2() { String s1 = "我愛heima,哈哈"; String s2 = "heima"; String s3 = "baima"; String s4 = "我愛"; String s5 = "哈哈"; System.out.println(s1.contains(s2)); //判斷是否包含傳入的字符串 System.out.println(s1.contains(s3)); System.out.println("------------------"); System.out.println(s1.startsWith(s4)); //判斷是否以傳入的字符串開頭 System.out.println(s1.startsWith(s5)); System.out.println("------------------"); System.out.println(s1.endsWith(s4)); //判斷是否以傳入的字符串結尾 System.out.println(s1.endsWith(s5)); } private static void demo1() { String s1 = "heima"; String s2 = "heima"; String s3 = "HeiMa"; System.out.println(s1.equals(s2)); //true System.out.println(s2.equals(s3)); //false System.out.println("---------------"); System.out.println(s1.equalsIgnoreCase(s2)); System.out.println(s1.equalsIgnoreCase(s3)); //不區分大小寫 } }
判斷
public class Demo3_String { /** * * 1.判斷定義為String類型的s1和s2是否相等 * String s1 = "abc"; * String s2 = "abc"; * System.out.println(s1 == s2); * System.out.println(s1.equals(s2)); * 2.下面這句話在內存中創建了幾個對象? * String s1 = new String("abc"); * 3.判斷定義為String類型的s1和s2是否相等 * String s1 = new String("abc"); * String s2 = "abc"; * System.out.println(s1 == s2); ? * System.out.println(s1.equals(s2)); ? * 4.判斷定義為String類型的s1和s2是否相等 * String s1 = "a" + "b" + "c"; * String s2 = "abc"; * System.out.println(s1 == s2); ? * System.out.println(s1.equals(s2)); ? * 5.判斷定義為String類型的s1和s2是否相等 * String s1 = "ab"; * String s2 = "abc"; * String s3 = s1 + "c"; * System.out.println(s3 == s2); * System.out.println(s3.equals(s2)); ? */ public static void main(String[] args) { //demo1(); //demo2(); //demo3(); //demo4(); String s1 = "ab"; String s2 = "abc"; String s3 = s1 + "c"; System.out.println(s3 == s2); System.out.println(s3.equals(s2)); //true } private static void demo4() { //byte b = 3 + 4; //在編譯時就變成7,把7賦值給b,常量優化機制 String s1 = "a" + "b" + "c"; String s2 = "abc"; System.out.println(s1 == s2); //true,java中有常量優化機制 System.out.println(s1.equals(s2)); //true } private static void demo3() { String s1 = new String("abc"); //記錄的是堆內存對象的地址值 String s2 = "abc"; //記錄的是常量池中的地址值 System.out.println(s1 == s2); //false System.out.println(s1.equals(s2)); //true } private static void demo2() { //創建幾個對象 //創建兩個對象,一個在常量池中,一個在堆內存中 String s1 = new String("abc"); System.out.println(s1); } private static void demo1() { //常量池中沒有這個字符串對象,就創建一個,如果有直接用即可 String s1 = "abc"; String s2 = "abc"; System.out.println(s1 == s2); //true System.out.println(s1.equals(s2)); //true } }
字符串的常用方法