如何删除字符串中的重复单词并以相同的顺序显示它们

时间:2017-09-09 13:10:07

标签: java sorting duplicates set

这是我的程序,使用set the program删除字符串中的重复单词 可以正常删除重复的元素,但输出的顺序不正确

pub mod

输入字符串 嗨嗨世界你好

hi hi world hello a

5

世界上你好

我希望输出为 hi hi hello a

4 个答案:

答案 0 :(得分:2)

使用LinkedHashSet

维持秩序并避免重复。

Set wordSet = new LinkedHashSet();

答案 1 :(得分:1)

使用LinkedHashSet。

它将跟踪订单并避免重复元素。

Set<String> linkedHashSet = new LinkedHashSet<String>();

如果您已经将元素存储在字符串数组中,则可以将集合api用于addAll到集合中。

String words[]=a1.split(" ");

Set<String> linkedHashSet=new LinkedHashSet<String>();
linkedHashSet.addAll(Arrays.asList(words));.

答案 2 :(得分:0)

package StringPrograms;

import java.util.Scanner;

public class RemoveDuplicateWords {

    public static void main(String[] args) {
        boolean flag;
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();
        String[] str = input.split(" ");
        int count = 0;
        String[] out = new String[str.length];
        for (int i = 0; i < str.length; i++) {
            flag = true;
            for (int j = 0; j <count; j++) {
                if (str[i].equalsIgnoreCase(out[j])) {
                    flag = false;
                    break;
                }
            }
            if (flag) {
                out[count] = str[i];
                count++;
            }
        }
        for (int k = 0; k < out.length; k++) {
            if (out[k] != null)
                System.out.print(out[k] + " ");
        }
    }
}

答案 3 :(得分:0)

String noDuplicates = Arrays.asList(startingString.split(" ")).stream()
                            .distinct()
                            .collect(Collectors.join(" "));

这种方法虽然不能处理逗号和特殊字符。