如何比较没有Java utils的两个字符串数组 [英] how to compare two string arrays without java utils
本文介绍了如何比较没有Java utils的两个字符串数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
检查是否数组ARR1包含在同一顺序的相同元素ARR2在java中。
Check to see if the array arr1 contain the same elements as arr2 in the same order in java.
例如:
isTheSame({"1", "2", "3"}, {"1", "2", "3"}) → true
isTheSame({"1", "2", "3"}, {"2", "1", "1"}) → false
isTheSame({"1", "2", "3"}, {"3", "1", "2"}) → false
到目前为止,我有
so far i have
public boolean isTheSame(String[] arr1, String[] arr2)
{
if (arr1.length == arr2.length)
{
for (int i = 0; i < arr1.length; i++)
{
if (arr1[i] == arr2[i])
{
return true;
}
}
}
return false;
}
这里的问题是,它只有比较两个阵列的第一个元素
The problem with this is that it only compares the first element of the two arrays.
推荐答案
您是迭代,直到找到一个匹配。您应该寻找一个字符串不匹配,你应该使用等于
不是 ==
You are iterating until you find a match. You should instead be looking for a String which doesn't match and you should be using equals
not ==
// same as Arrays.equals()
public boolean isTheSame(String[] arr1, String[] arr2) {
if (arr1.length != arr2.length) return false;
for (int i = 0; i < arr1.length; i++)
if (!arr1[i].equals(arr2[i]))
return false;
return true;
}
FYI这是满足Arrays.equals不会因为它处理空
值,以及
public static boolean equals(Object[] a, Object[] a2) {
if (a==a2)
return true;
if (a==null || a2==null)
return false;
int length = a.length;
if (a2.length != length)
return false;
for (int i=0; i<length; i++) {
Object o1 = a[i];
Object o2 = a2[i];
if (!(o1==null ? o2==null : o1.equals(o2)))
return false;
}
return true;
}
这篇关于如何比较没有Java utils的两个字符串数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文