Java 从数组/arraylist中删除重复字符串
下面是一段代码,我试图从包含一些文本文件的文件夹(Tester)中获取文件内容。之后,我必须把文本文件中的所有单词编成字典。我正在获取单词(字符串),但它们正在重复,我必须删除重复的单词 例如: file1-Java 从数组/arraylist中删除重复字符串,java,indexing,hashmap,Java,Indexing,Hashmap,下面是一段代码,我试图从包含一些文本文件的文件夹(Tester)中获取文件内容。之后,我必须把文本文件中的所有单词编成字典。我正在获取单词(字符串),但它们正在重复,我必须删除重复的单词 例如: file1-John正在编码,file2-John实际上没有编码 所以我想要的输出是-John正在编码,实际上不是,也就是说,不是重复的 此外,我必须制作一个矩阵,其中包含所有单词和相应的文本文件(就像索引器一样)。 例如: 任何帮助都将不胜感激,我被困住了 public static void mai
John正在编码
,file2-John实际上没有编码
所以我想要的输出是-John正在编码,实际上不是
,也就是说,不是重复的
此外,我必须制作一个矩阵,其中包含所有单词和相应的文本文件(就像索引器一样)。
例如:
任何帮助都将不胜感激,我被困住了
public static void main(String[] args) throws IOException {
File folder = new File("/home/gaurav/Tester");
File[] listOfFiles = folder.listFiles();
ArrayList<String> array = new ArrayList<String>();
for (int i = 0; i < listOfFiles.length; i++) {
File file = listOfFiles[i];
if (file.isFile() && file.getName().endsWith(".txt")) {
String content = FileUtils.readFileToString(file);
String[] a = content.split(" ");
for (String s : a) {
if (!array.contains(a)) {
array.add(s);
}
}
}
}
for (int j = 0; j < array.size(); j++) {
System.out.print(array.get(j));
}
}
publicstaticvoidmain(字符串[]args)引发IOException{
文件夹=新文件(“/home/gaurav/Tester”);
File[]listOfFiles=folder.listFiles();
ArrayList数组=新的ArrayList();
for(int i=0;i
您的错误是您正在检查包含(a)而不是包含(s)
另外一个好主意是在比较或添加之前修剪s。我们也要这样做:
for(String s:a){
s = s.trim()
if(!array.contains(s))
array.add(s);
}
使用
集合
,因为它不包含重复的元素:
Set<String> words = new HashSet<>();
// ...
for(String word: a) {
words.add(word);
}
Set words=newhashset();
// ...
for(字符串字:a){
添加(word);
}
array = new ArrayList<>(new LinkedHashSet<>(array));
for(String s:a){
if(!array.contains(a))
array.add(s);
}
for(String s:a){
s = s.trim()
if(!array.contains(s))
array.add(s);
}
Set<String> words = new HashSet<>();
// ...
for(String word: a) {
words.add(word);
}