判断字符串是否相等

对字符串对象进行比较不能简单地使用比较运算符“==”,因为比较运算符比较的是两个字符串的地址是否相同。即使两个字符串的内容相同,两个对象的内存地址也是不同的,使用比较运算符仍然会返回false。

【例子】使用比较运算符比较两个字符串,实例代码如下:

String tom = new String("I am a student");
String jerry = new String("I am a student");
boolean b = (tom == jerry);

此时,布尔型变量b的值为false,因为字符串是对象,tom、jerry是引用。内存示意图如下

内存示意图

因此,要比较两个字符串内容是否相等,应使用equals()方法和equalsIgnoreCase()方法。

(1)equals()方法
如果两个字符串具有相同的字符和长度,则使用equals()方法进行比较时,返回true。语法如下:

str.equals(String otherstr)

其中,str、otherstr是要比较的两个字符串对象。

(2)equalsIgnoreCase()方法

使用equals()方法对字符串进行比较时是区分大小写的,而使用equalsIgnoreCase()方法是在忽略了大小写的情况下比较两个字符串是否相等,返回结果仍为boolean类型。语法如下:

str.equalsIgnoreCase(String otherstr)

其中,str、otherstr是要比较的两个字符串对象。

通过下面的例子可以看出equals()方法和equalsIgnoreCase()方法的区别。【例子】在项目中创建类Opinion,在主方法中创建String型变量,实现判断两个字符串是否相等,并将结果输出。

public class Opinion { // 创建类
	public static void main(String args[]) { // 主方法
		String s1 = new String("abc"); // 创建字符串对象s1
		String s2 = new String("ABC"); // 创建字符串对象s2
		String s3 = new String("abc"); // 创建字符串对象s3
		boolean b = s1.equals(s2); // 使用equals()方法比较s1与s2
		// 使用equalsIgnoreCase()方法比较s1与s2
		boolean b2 = s1.equalsIgnoreCase(s2); 
		System.out.println(s1 + " equals " + s2 + " :" + b); // 输出信息
		System.out.println(s1 + " equalsIgnoreCase " + s2 + " :" + b2);
	}
}
判断两个字符串是否相等
例子

发表评论