您的位置:

Java String比较的使用

一、String比较方法

Java中String类型的比较有多种方式,常见的有“==”和equals()方法。其中“==”用于比较两个字符串是否是同一个对象,而equals()方法则用于比较两个字符串的值是否相等。

//示例代码1
String str1 = "hello";
String str2 = "hello";
String str3 = new String("hello");

System.out.println(str1 == str2); //true
System.out.println(str1 == str3); //false
System.out.println(str1.equals(str3)); //true

在示例代码1中,首先定义了三个字符串类型的变量,其中str1和str2的值相同,都是"hello",而str3则是通过new关键字新建的一个字符串对象,其值也为"hello"。在比较str1和str2时,使用“==”判断它们所引用的对象是否是同一个对象,因为都是指向常量池中同一个字符串对象,所以结果为true;而str1和str3指向的是不同的对象,所以比较结果为false。而使用equals()方法比较str1和str3的值时,结果为true。

二、String比较函数的常用方法

除了“==”和equals()方法外,String类型还提供了一些其他的比较方法,如compareTo()、equalsIgnoreCase()等,下面分别进行介绍。

1. compareTo()

compareTo()方法用于比较两个字符串的大小关系,如果当前字符串小于目标字符串,则返回负数;如果当前字符串等于目标字符串,则返回0;如果当前字符串大于目标字符串,则返回正数。

//示例代码2
String str1 = "aaa";
String str2 = "ab";
String str3 = "AA";

System.out.println(str1.compareTo(str2)); //-1
System.out.println(str2.compareTo(str1)); //1
System.out.println(str1.compareTo(str1)); //0
System.out.println(str1.compareToIgnoreCase(str3)); //32

在示例代码2中,比较了str1和str2以及str1和str1本身的大小关系,结果分别为-1和0。另外,比较str1和str3时使用了compareToIgnoreCase()方法,它与compareTo()方法的功能相似,但会忽略大小写。

2. equalsIgnoreCase()

equalsIgnoreCase()方法用于忽略大小写比较两个字符串是否相等。

//示例代码3
String str1 = "hello";
String str2 = "HeLLo";

System.out.println(str1.equalsIgnoreCase(str2)); //true

在示例代码3中,比较了两个字符串"hello"和"HeLLo",因为equalsIgnoreCase()方法忽略大小写,所以返回true。

3. contains()

contains()方法用于判断当前字符串是否包含指定的子字符串。

//示例代码4
String str1 = "hello";
String str2 = "ell";

System.out.println(str1.contains(str2)); //true

在示例代码4中,使用contains()方法判断了字符串"hello"是否包含子字符串"ell",结果为true。

4. startsWith()

startsWith()方法用于判断当前字符串是否以指定的子字符串开头。

//示例代码5
String str1 = "hello";
String str2 = "he";

System.out.println(str1.startsWith(str2)); //true

在示例代码5中,使用startsWith()方法判断了字符串"hello"是否以子字符串"he"开头,结果为true。

5. endsWith()

endsWith()方法用于判断当前字符串是否以指定的子字符串结尾。

//示例代码6
String str1 = "hello";
String str2 = "lo";

System.out.println(str1.endsWith(str2)); //true

在示例代码6中,使用endsWith()方法判断了字符串"hello"是否以子字符串"lo"结尾,结果为true。

三、总结

String类型在Java中是经常使用到的一种数据类型,在比较字符串时常用的比较方法有“==”和equals()方法,要根据实际情况选择使用。另外,String类型还提供了很多其他的比较方法,如compareTo()、equalsIgnoreCase()、contains()、startsWith()和endsWith()等,要根据实际需求选择使用。