从Java中的字符串中删除重复的值

从Java中的字符串中删除重复的值,第1张

从Java中的字符串中删除重复的值

只需一行即可:

public String deDup(String s) {    return new linkedHashSet<String>(Arrays.asList(s.split("-"))).toString().replaceAll("(^\[|\]$)", "").replace(", ", "-");}public static void main(String[] args) {    System.out.println(deDup("Bangalore-Chennai-NewYork-Bangalore-Chennai"));}

输出:

Bangalore-Chennai-NewYork

请注意,订单已保留:)

关键点是:

  • split("-")
    给我们不同的值作为数组
  • Arrays.asList()
    把数组变成一个列表
  • linkedHashSet
    保留唯一性 插入顺序-它完成为我们提供唯一值的所有工作,这些值通过构造函数传递
  • toString()
    列表是
    [element1, element2, ...]
  • 最后的
    replace
    命令从
    toString()

此解决方案要求这些值不包含字符序列

", "
,这是此类简洁代码的合理要求。

Java 8更新!

当然是1行:

public String deDup(String s) {    return Arrays.stream(s.split("-")).distinct().collect(Collectors.joining("-"));}
正则表达式更新!

如果您不关心保留顺序(即可以删除第 一次 出现的重复项):

public String deDup(String s) {    return s.replaceAll("(\b\w+\b)-(?=.*\b\b)", "");}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5438881.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-11
下一篇2022-12-11

发表评论

登录后才能评论

评论列表(0条)

    保存