欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA字符串排序去重

发布时间:2024/8/1 编程问答 49 豆豆
生活随笔 收集整理的这篇文章主要介绍了 JAVA字符串排序去重 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

场景问题:在DB中我们可能会对数据的ID进行拼接,有时会存在部分ID相同的情况。此时需要对查询出来的这个拼接数据(type:String)进行去重。

实现:此处采用JAVA8的Stream()操作进行实现,做个记录,方便下次使用。

CODE

在本业务中拼接的ID数据一般使用",“和”_"作为拼接符,所以code中的delimiter是写死的两种情况,后续待优化。

去重数据:

  • String value1 = “aa,bb,cc,aa,dd,ee,aa,”
  • String value2 = “12_15_30_12_100_1_58_90_210”
    》执行结果如下:
    1) “aa,bb,cc,dd,ee”
    2) “1_12_15_30_58_90_100_210”
  • private String removeDuplicateData(String value) {//工具类判断字符串非空if (CommonUtil.isEmptyString(value)) {retun null;}String delimiter = value.contains("_") ? "_":",";String lastCharacter = value.substring(value.length()-1);if (lastCharacter.equals(delimiter)) {value = value.substring(0,value.length()-1);}if (value.equals(delimiter)) {return null;}List<String> targetList = Arrays.asList(value.split(delimiter));//JAVA8的stream()操作,sorted()用来排序,distinct()用来去重return targetList.stream().sorted(Comparator.comparing(String::hashCode)).distinct().collect(Collectors.joining(delimiter)); }

    这个方法由于在业务中侧重对数字字符串进行去重排序,字符的排序建议自己测试通过后再进行使用。

    总结

    以上是生活随笔为你收集整理的JAVA字符串排序去重的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。