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

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

比如说:

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

再比如:

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

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

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 方法,该方法比较的是字符串的内容是否相同

比如:

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

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


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

appcan利用天翼rtc实现视频通话功能 上一篇
office2016激活工具 下一篇