当前位置:   article > 正文

Java字符串比较_java 字符串==

java 字符串==


对Java字符串的比较有3种方法,接下来分别介绍对应方法内容。

1、使用"=="比较两个字符串是否为同一个对象

对于使用“==”进行比较,不仅需要两个字符串的值本身是相同的,同时要求两个字符串是同一个对象。下面我们从Java中来仔细看。

public static void main(String[] args) {
        String a = "hello world";
        String b = "hello world";
        String c = "hello " + "world";
        
        String d = "hello ";
        String e = "world";
        String f = d + e;


        if (a == b) {
            System.out.println("true");
        } else {
            System.out.println("false");
        }

        if (a == c) {
            System.out.println("true");
        } else {
            System.out.println("false");
        }

        if (a == f) {
            System.out.println("true");
        } else {
            System.out.println("false");
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
true
true
false
  • 1
  • 2
  • 3

上面代码的运行结果如上所示。

注意到上面的字符串a 字符串b 字符串c都是相同的一个对象,对于Java而言,只是将不同的引用指向相同的静态字符串,即都是同一个对象,所以使用"=="判断结果为true。

对于f而言,虽然字符串的值与字符串a 字符串b 字符串c的值相等,但是是通过新建的其他对象生成的,因此使用 "= ="结果为false。这里需要注意一下。

可能大家对于字符串a 字符串b 字符串c 与字符串f的区别还是比较明显的,因为f是新建的另一个对象;但是对于字符串a 字符串b 与 字符串c可能就存在一点问题,因为字符c是通过字符串相加获得的,这里需要主要,即使字符串相加也是静态变量,因此字符串a 字符串b 字符串c指向的是同一个对象。

2、使用String.equals()比较两个字符串的值是否相等

只关注两个字符串的值是否相等,不关注是不是同一个对象

public static void main(String[] args) {
        String a = "hello world";
        String b = "hello world";

        String c = "hello " + "world";

        String d = "hello ";
        String e = "world";
        String f = d + e;


        if (a.equals(b)) {
            System.out.println("true");
        } else {
            System.out.println("false");
        }

        if (a.equals(c)) {
            System.out.println("true");
        } else {
            System.out.println("false");
        }

        if (a.equals(f)) {
            System.out.println("true");
        } else {
            System.out.println("false");
        }
		String i = new String("你好");
        String j = new String("你好");
        // i和j是两个不同的对象
        if (i.equals(j)) {
            System.out.println("true");
        } else {
            System.out.println("false");
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
true
true
true
true
  • 1
  • 2
  • 3
  • 4

理解上面说的使用"=="判断,这里就很清楚了吧。String.equals()只比较两个对象的值是否相等。

3、使用String.compareTo()比较两个字符串的大小

用于 字符串与对象进行比较 或者 按字典顺序比较两个字符串
这里我们看一个按字典顺序比较两个字符串:

public static void main(String[] args) {
        String a = "hello world";
        String b = "hello f world";
        System.out.println(a.compareTo(b));
    }
  • 1
  • 2
  • 3
  • 4
  • 5
17
  • 1

输出结果17

返回值是整型,它是比较对应字符的大小(ASCLL码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的长度差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方结束。
如果参数字符串等于此字符串,则返回值0;
如果此字符串小于字符串参数,则返回一个小于0的值;
如果此字符串大于字符串参数,则返回一个大于0的值。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/594339
推荐阅读
相关标签
  

闽ICP备14008679号