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

19 java arrays string-matching

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

作为字符串数组的'array'包含许多字符串,其中两个字符串彼此相似.因此,使用下面的代码必须删除重复的字符串,但不会删除它.

如何删除重复的字符串?

我使用以下代码.

    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]);
        }
    }
Run Code Online (Sandbox Code Playgroud)

Gar*_*all 35

这会奏效

array = new HashSet<String>(Arrays.asList(array)).toArray(new String[0]);
Run Code Online (Sandbox Code Playgroud)

或者只使用一个HashSet而不是一个数组.

  • `new String[0]` 的目的是什么? (2认同)

Hub*_*her 5

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

array = Arrays.stream(array).distinct().toArray(String[]::new);
Run Code Online (Sandbox Code Playgroud)

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