gpt4 book ai didi

java - 删除连字符分隔的大字符串中的重复字符串集

转载 作者:行者123 更新时间:2023-12-02 16:37:28 24 4
gpt4 key购买 nike

我正在用 Java 开发,我有以下字符串:

String duplicates = "Smith, John - Smith, John - Smith, John – Wilson, Peter";

我需要获取一个没有重名的新字符串。

unique = "Smith, John – Wilson, Peter";

我以为我可以用

String unique[] = duplicates.split("-");

用逗号分隔连字符的问题是现在我有了所有逗号

Smith, John, Smith, John, Smith, John, Wilson, Peter

任何帮助将不胜感激

最佳答案

可以使用distinct()操作流

Arrays.stream(duplicates.split("\\s+(-|–|‒|–|—|―)+\\s+")) // split by different types of dashes surrounded by whitespaces
.distinct() // get rid of duplicates
.collect(Collectors.toList())
.forEach(System.out::println); // print each entry

输出:

Smith, John
Wilson, Peter

或者使用Collectors.joining 来获取没有重复的字符串:

String duplicates = "Smith, John -- Smith, John - Smith, John – Wilson, Peter ‒ Yves Saint-Laurent ― George Henry Lane-Fox Pitt-Rivers";

String noDuplicates = Arrays.stream(duplicates.split("\\s+(-|–|‒|–|—|―)+\\s+"))
.distinct()
.collect(Collectors.joining(" – "));
System.out.println(noDuplicates);

打印:

Smith, John – Wilson, Peter – Yves Saint-Laurent – George Henry Lane-Fox Pitt-Rivers

我更新了对可以包含单个连字符的名称的检测以处理非常流行的“双管”名称,并添加了类型 dashes

关于java - 删除连字符分隔的大字符串中的重复字符串集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62391728/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com