java中字符串相等的判断

注:本文已发布超过一年,请注意您所使用工具的相关版本是否适用

今天需要写一个 Java 的小程序需要判断一下从控制台输入的字符串是否相等,在使用的过程中发现直接使用“==”来判断是没有办法判断出来的,Google&百度了一下,找到一个解决办法

1. 用“==”运算符,该运算符表示指向字符串的引用是否相同

比如说:

1
2
3
String a="abc";String b="abc";
a==b;//将返回true。
/*这是因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份,所以a和b指向的是同一个对象*/

再比如:

1
2
3
String a=new String("abc");
String b=new String("abc");
//那么a==b将返回false,因为a和b指向不同的对象。

用 scanner 类获取字符串来比较的时候:

1
2
3
4
5
6
7
Scanner input=new Scanner(System.in);//新建input对象,用于实现输入功能
String a="exit";//定义一个字符串
System.out.println("请输入您想输入的字符串:");
String get=input.nextLine();//获取输入得的字符串的值
if(get==a){
System.out.println(a);
}//这个时候没有输出值

2. 用 equals 方法,该方法比较的是字符串的内容是否相同

比如:

1
2
3
String a=new String("abc");
String b=new String("abc");
a.equals(b);//将返回true。

所以通常情况下,为了避免出现上述问题,判断字符串是否相等使用 equals 方法。

关注我获取更新

wechat
知乎
github

猜你喜欢