如何在没有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; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 由以下原因引起:org.postgresql.util.PSQLExcepti
- CompletableFuture基本用法
- 奇怪的Java HashMap行为 – 找不到匹配的对象
- 在Java中获取当前周的开始和结束日期 – (MONDAY TO SUNDAY
- Apache的开源项目Commons Email发送邮件
- 浅谈java中BigDecimal的equals与compareTo的区别
- JSP PageContext.getAttribute()方法:在指定范围内检索属性
- java – Soap SSL握手
- java – 如何避免创建多余的实体?
- Maven+Tomcat8 实现自动化部署的方法