删除字符串数组中的重复字符串

2022-09-02 02:49:10

我正在制作一个基于Java中的字符串处理的程序,其中我需要从字符串数组中删除重复的字符串。在此程序中,所有字符串的大小都相同。

“数组”是一个字符串数组,其中包含许多字符串,其中两个字符串彼此相似。因此,使用以下代码,必须删除重复的字符串,但不会将其删除。

如何删除重复的字符串?

我正在使用以下代码。

    for(int s=0;s<array.length-1;s++)
    {
        for(int m=0;m<array.length;m++)
        {
                for(int n=0;n<array[m].length();n++)
                {   
                    if(array[s].charAt(n)==array[m].charAt(n))
                    {
                      continue;
                    }
                    else 
                break;
        } 
        if(n==array[m].length())
        {
            ArrayUtils.removeElement(array, array[s]);
        }
    }

答案 1

这将起作用

array = new HashSet<String>(Arrays.asList(array)).toArray(new String[0]);

或者只是使用 a 而不是数组。HashSet


答案 2

建议的解决方案不保持元素的顺序。如果您使用 Java 8 或更高版本并希望保持顺序,则可以按如下方式使用流:

array = Arrays.stream(array).distinct().toArray(String[]::new);

完整示例:https://www.javacodeexamples.com/java-string-array-remove-duplicates-example/849