一般,像我们比较时,我们常用“==”来进行比较,当相等时输出true,反之false。例如:
public class Main { public static void main(String[] args) { int a=30; int b=20; System.out.println(a==b); b=30; System.out.println(a==b); } }输出:false true
那么我们就深挖一下这个“==”。
其实,当我们比较基本数据类型时,比较的是实际值,而当比较引用数据类型时,比较的是地址值。如:
public class Main { public static void main(String[] args) { int []arr1={1,2,3}; int []arr2={1,2,3}; System.out.println(arr1==arr2); } }输出:false。
要知道,字符串属于引用数据类型,因此,在我们想要两个字符串里面的值是否相等时不能使用“==”,而是使用String里面的equal方法和equalsIgnoreCase方法。
1.先介绍equal方法,它比较时,区分大小写。
public class Main { public static void main(String[] args) { String str1=new String("abc"); String str2=new String("ABC"); System.out.println(str1.equals(str2)); str2="abc"; System.out.println(str1.equals(str2)); } }输出:false true
2.而equalsIgnoreCase方法则不考虑大小写。
public class Main { public static void main(String[] args) { String str1=new String("abc"); String str2=new String("ABC"); System.out.println(str1.equalsIgnoreCase(str2)); } }输出:true