加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何在没有java utils的情况下比较两个字符串数组

发布时间:2020-12-15 04:59:43 所属栏目:Java 来源:网络整理
导读:检查数组arr1是否在 java中以相同的顺序包含与arr2相同的元素. 例如: isTheSame({"1","2","3"},{"1","3"}) → true isTheSame({"1",{"2","1","1"}) → false isTheSame({"1",{"3","2"}) → false 到目前为止我有 public boolean isTheSame(String[] arr1,St
检查数组arr1是否在 java中以相同的顺序包含与arr2相同的元素.

例如:

isTheSame({"1","2","3"},{"1","3"}) → true
    isTheSame({"1",{"2","1","1"}) → false
    isTheSame({"1",{"3","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;  
 }

这个问题是它只比较两个数组的第一个元素.

解决方法

你正在迭代,直到找到匹配.你应该寻找一个不匹配的String,你应该使用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;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读