数字与字符串系列教材 (八)- Java 比较字符串详解

步骤1:是否是同一个对象
步骤2:是否是同一个对象-特例
步骤3:内容是否相同
步骤4:是否以子字符串开始或者结束
步骤5:练习-比较字符串
步骤6:答案-比较字符串

示例 1 : 是否是同一个对象

str1和str2的内容一定是一样的! 
但是,并不是同一个字符串对象

package character;

 

public class TestString {

 

    public static void main(String[] args) {

 

        String str1 = "the light";

         

        String str2 = new String(str1);

         

        //==用于判断是否是同一个字符串对象

        System.out.println( str1  ==  str2);

         

    }

 

}

示例 2 : 是否是同一个对象-特例

str1 = "the light";

str3 = "the light";


一般说来,编译器每碰到一个字符串的字面值,就会创建一个新的对象
所以在第6行会创建了一个新的字符串"the light"
但是在第7行,编译器发现已经存在现成的"the light",那么就直接拿来使用,而没有进行重复创建

package character;

 

public class TestString {

 

    public static void main(String[] args) {

        String str1 = "the light";

        String str3 = "the light";

        System.out.println( str1  ==  str3);

    }

 

}

示例 3 : 内容是否相同

使用equals进行字符串内容的比较,必须大小写一致 
equalsIgnoreCase,忽略大小写判断内容是否一致

package character;

  

public class TestString {

  

    public static void main(String[] args) {

  

        String str1 = "the light";

          

        String str2 = new String(str1);

         

        String str3 = str1.toUpperCase();

 

        //==用于判断是否是同一个字符串对象

        System.out.println( str1  ==  str2);

         

        System.out.println(str1.equals(str2));//完全一样返回true

         

        System.out.println(str1.equals(str3));//大小写不一样,返回false

        System.out.println(str1.equalsIgnoreCase(str3));//忽略大小写的比较,返回true

         

    }

  

}

示例 4 : 是否以子字符串开始或者结束

startsWith //以...开始

endsWith //以...结束

package character;

  

public class TestString {

  

    public static void main(String[] args) {

        String str1 = "the light";

         

        String start = "the";

        String end = "Ight";

         

        System.out.println(str1.startsWith(start));//以...开始

        System.out.println(str1.endsWith(end));//以...结束

          

    }

  

}


更多内容,点击了解: https://how2j.cn/k/number-string/number-string-compare/326.html

posted @ 2020-03-12 09:52  Lan_ht  阅读(167)  评论(0编辑  收藏  举报