如何在java中消除逗号分隔字符串中的重复项?

7vhp5slm  于 2023-05-05  发布在  Java
关注(0)|答案(6)|浏览(348)

我有一个字符串places=“city,city,town”。我需要“城市,城镇”。基本上摆脱了逗号分隔字符串中的重复条目。
“); document. writeln(”会给予我一个String数组。我想知道,如果我可以把这个数组传递给一个HashSet或其他东西,它会自动消除重复,但尝试这样做:

HashSet test=new HashSet(a.split(","));

给出错误:

cannot find symbol
symbol : constructor HashSet(java.lang.String[])

有没有什么简洁的方法来实现这一点,最好是用最少的代码?

omvjsjqw

omvjsjqw1#

HashSet<String> test=new HashSet<String>(Arrays.asList(s.split(",")));

这是因为HashSet没有需要数组的构造函数。它需要一个集合,这就是我在这里通过Arrays.asList(s.split(","))所做的

icnyk63a

icnyk63a2#

String s[] = places.split(",");
HashSet<String> hs = new HashSet<String>();
for(String place:s)
    hs.add(place);
ckx4rj1h

ckx4rj1h3#

如果你关心排序,我建议你使用LinkedHashSet

LinkedHashSet test = new LinkedHashSet(Arrays.asList(a.split(",")));
yvt65v4c

yvt65v4c4#

在Java 8中这样做的另一种方法是:
假设你有一个字符串 str,其中有一些逗号分隔的值。您可以将其转换为流并删除重复项,然后重新连接到逗号分隔的值,如下所示:

String str = "1,2,4,5,3,7,5,3,3,8";
str = String.join(",",Arrays.asList(str.split(",")).stream().distinct().collect(Collectors.toList()));

这将给予你一个没有任何重复的String str

w80xi6nr

w80xi6nr5#

String[] functions= commaSeperatedString.split(",");

            List<String> uniqueFunctions = new ArrayList<>();

            for (String function : functions) {
                if ( !uniqueFunctions.contains(function.trim())) {
                    uniqueFunctions.add(function.trim());
                }
            }
            return String.join(",",uniqueFunctions);

或者你可以使用linkedHashset
System. out. println(“,”);

3j86kqsm

3j86kqsm6#

String noDups = Arrays.stream(input.split(",")).distinct().collect(Collectors.joining(","));

相关问题