1. 程式人生 > >字符串的常用方法

字符串的常用方法

區分 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
    }

}

字符串的常用方法