这是家庭作业的一部分,一个搜索引擎。我正在尝试创建一个从字符串输入中删除重复值的类(输入将从用户获取,现在使用随机字符串进行测试)并将标记/单词存储到ArrayList中以将它们与停止字的String []进行比较(要删除的词)。我正在使用List和LinkedHashSet,因为我想保留单词的顺序并删除重复项。它确实删除了重复的单词并保留了顺序,但是我无法将它存储到ArrayList,任何想法?
import java.util.Arrays;
import java.util.List;
import java.util.LinkedHashSet;
import java.util.Set;
public class RemoveDuplicateWord {
public static void main(String[] args) {
String str = "the search engine that could search";
removeDupWord(str);
}
public static void removeDupWord(String str) {
List<String> list = Arrays.asList(str.split(" "));
Set<String> lhs = new LinkedHashSet<String>(list);
for(String s : lhs) {
System.out.print(s+" ");
}
}
}
答案 0 :(得分:1)
public static void removeDupWords(String str) {
List<String> list = Arrays.asList(str.split(" "));
Set<String> check = new HashSet<String>();
String output = "";
for(int i =0; i< list.size(); i++) {
if(!check.contains(list.get(i)))
output = output.concat(list.get(i) + " ");
check.add(list.get(i));
}
System.out.println(output);
}
答案 1 :(得分:0)
只需声明另一个arrayList,并在迭代Set时添加每个字符串。
public static void removeDupWord(String str) {
List<String> list = Arrays.asList(str.split(" "));
Set<String> lhs = new LinkedHashSet<String>(list);
List<String> result= new ArrayList<String>();
for(String s : lhs) {
System.out.print(s+" ");
result.add(s);
}
}
答案 2 :(得分:0)
我认为这就是你想要的,因为我理解你需要的东西:/希望它有效
null