在前面几次中,我们已经介绍了Object中的equals方法是与==相等的,String重写equals方法,所以才会比较字符串的内容。
那么对于字符数组,我们应该如何比较其内容是否相同呢?
package com.code;
public class Test {
public static void main(String[] args) {
char[] ch1 = new char[2];
char[] ch2 = new char[2];
ch1[0]='a';
ch1[1]='b';
ch2[0]='a';
ch2[1]='b';
System.out.println(ch1.equals(ch2));
}
}
这里提供3种方法:
1.穷举所有位,依次比较。
这种方法比较简单,这里不举例说明了。
2.使用String的构造方法。
package com.code;
public class Test {
public static void main(String[] args) {
char[] ch1 = new char[2];
char[] ch2 = new char[2];
ch1[0]='a';
ch1[1]='b';
ch2[0]='a';
ch2[1]='b';
String str1 = new String(ch1);
String str2 = new String(ch2);
System.out.println(str1.equals(str2));
}
}
3.使用辅助数组Array类实现:
package com.code;
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
char[] ch1 = new char[2];
char[] ch2 = new char[2];
ch1[0]='a';
ch1[1]='b';
ch2[0]='a';
ch2[1]='b';
boolean res = Arrays.equals(ch1,ch2);
System.out.println(res);
}
}