栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从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\1\b)", "");}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/463385.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号