这是我的程序,使用set the program删除字符串中的重复单词 可以正常删除重复的元素,但输出的顺序不正确
pub mod
输入字符串 嗨嗨世界你好
hi hi world hello a
5
世界上你好
我希望输出为 hi hi hello a
答案 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(" "));
这种方法虽然不能处理逗号和特殊字符。