我正在用Java进行编码,并且我很好地理解了我可以与比较大多数数组Arrays.equals
,并且可以不区分大小写地比较字符串String.equalsIgnoreCase
,但是有没有办法不区分大小写地比较字符串数组?
样例代码:
class Foo {
String[] array; // don't care about case
@Override
public boolean equals(Foo obj) {
// bunch of stuff to check equality
if (!Arrays.equals(array, obj.array)) return false; // case insensitive?
return true;
}
}
您的代码不会编译,因为您没有覆盖具有如下签名的Object的equals方法 public boolean equals(Object obj)
同样要进行比较,您可以在修改后的equals中执行以下操作:
if (array == foo.array) {
return true;
}
if (array == null || foo.array == null) {
return false;
}
int length = array.length;
if (foo.length != length)
return false;
for (int i=0; i<length; i++) {
String string1 = array[i];
String string2 = foo.array[i];
if (!(string1==null ? string2==null : string1.equalsIgnoreCase(string2)))
return false;
}
return true;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句