1.两个变量之间的比较,可以直接比较,如
public class Test{
public static void main(String[] args){
String str1="a", str2="a";
if (str1==str2){
System.out.println("一样");
}
else
System.out.println("不一样");
}
}
输出的结果是:
一样
2.变量和常量的比较,也可以直接比较,如:
public class Test{
public static void main(String[] args){
String str="a";
if (str=="b"){
System.out.println("一样");
}
else
System.out.println("不一样");
}
}
输出的结果是:
不一样
3.笔者主要想讲带有输入的字符串的比较,如果像之前那样比较,是行不通的,如:
import java.util.Scanner;
public class TestBreak{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String str1 = in.next();
String str2 = "a";
Boolean result = (str1==str2);
System.out.println(result);
}
}
如果输入的是:a
输出的结果是:
false
可能是输入的字符串str1实际是:a\r\n
java是使用equals()比较字符串是否相等的
需要这样比较:
import java.util.Scanner;
public class TestBreak{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
String str1 = in.next();
String str2 = "a";
Boolean result = (str2.equals(str1));
System.out.println(result);
}
}
如果输入的是:a
输出的结果是:
true
当然,两个变量也可以用这种方法,如:
public class TestBreak{
public static void main(String[] args){
String str1 = "a";
String str2 = "a";
Boolean result = (str1.equals(str2));
System.out.println(result);
}
}
输出的结果是:
true
值得一提的是,如果一个字符串是变量,另一个字符串是常量的话,一定要把常量写在前面,变量写在后面(即括号内),这样写的原因只有一个,避免报空指针异常。如:str1是常量字符串,str2是变量字符串,则一定要写成str1.equals(str2).不能写成str2.equals(str1),否则如果str2为null的话,应该会报空指针异常的