how to compare two string arrays without java utils(如何在没有java utils的情况下比较两个字符串数组)
问题描述
检查数组arr1是否包含与java中相同顺序的arr2相同的元素.
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
目前为止
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.
推荐答案
您一直在迭代,直到找到匹配项.你应该寻找一个不匹配的字符串,你应该使用 equals 而不是 ==
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;
}
仅供参考,这就是 Arrays.equals 在处理 null 值时所做的事情.
FYI This is what Arrays.equals does as it handle null values as well.
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的情况下比较两个字符串数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在没有java utils的情况下比较两个字符串数组
基础教程推荐
- 控制台应用程序中的 Java 键盘输入解析 2022-01-01
- Maven:无效的目标版本:10 2022-01-01
- doFilter()是在servlet的工作完成之前还是之后执行的? 2022-01-01
- 将 double 转换为 Int,向下舍入 2022-01-01
- Java ECDSAwithSHA256 签名长度不一致 2022-01-01
- 将 Windows 证书导入 Java 2022-01-01
- JPA惰性列表上的流 2022-01-01
- 如何在相机中应用自定义滤镜 [Surfaceview 预览]. 2022-01-01
- 在springboot中如何给mybatis加拦截器 2023-04-29
- 在java中使用xpath和selenium解析HTML表格数据 2022-01-01
