您可以使用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