Java程序比较字符串

您可以使用compareTo()方法,equals()方法或==运算符比较Java中的两个字符串。

compareTo()方法比较两个字符串。比较是基于字符串中每个字符的Unicode值。在字典上比较此String对象表示的字符序列与自变量字符串表示的字符序列。

如果此String对象在字典上在参数字符串之前,则结果为负整数。

如果此String对象在字典上跟随自变量字符串,则结果为正整数。

如果字符串相等,则结果为零,当equals(Object)方法返回true时,compareTo恰好返回0。

示例

public class StringCompareEmp{
   public static void main(String args[]){
      String str = "Hello World";
      String anotherString = "hello world";
      Object objStr = str;
      System.out.println( str.compareTo(anotherString) );
      System.out.println( str.compareToIgnoreCase(anotherString) );
      System.out.println( str.compareTo(objStr.toString()));
   }
}

输出结果

-32
0
0

equals()String类的方法将此字符串与指定对象进行比较。当且仅当参数不为null并且是一个String对象,表示与此对象相同的字符序列时,结果为true。

示例

public class StringCompareEqual{
   public static void main(String []args){
      String s1 = "nhooo";
      String s2 = "nhooo";
      String s3 = new String ("nhooo.com");
      System.out.println(s1.equals(s2));
      System.out.println(s2.equals(s3));
   }
}

输出结果

true
false

您还可以使用==运算符比较两个字符串。但是,它比较给定变量而不是值的引用。

示例

public class StringCompareequl{
   public static void main(String []args){
      String s1 = "nhooo";
      String s2 = "nhooo";
      String s3 = new String ("nhooo.com");
      System.out.println(s1 == s2);
      System.out.println(s2 == s3);
   }
}

输出结果

true
false