與Java新的IM(剛剛開始一個課程2周前)。我有2個txt文件1.txt和2.txt,文件1有3個名字(peter,ann和albert)文件2(peter,lennon和smeagol)。如何在兩個* .txt文件中找到相同的名稱?
我必須編寫一個讀取文件的程序,然後比較並回答3個問題: 打印文件1中而不是文件2中的名稱。完成後 打印文件2中的名稱而不是在文件1中。這是完成的 打印出現在兩個文件中的名稱。 我只是找不到如何比較並給出出現在這兩個文件中的名稱。
這是我的代碼。
public static void main(String[] args) throws IOException {
ArrayList<String> list1 = new ArrayList<>();
// New BufferedReader.
BufferedReader reader = new BufferedReader(new FileReader(
"1.txt"));
// Add all lines from file to ArrayList.
while (true) {
String line = reader.readLine();
if (line == null) {
break;
}
list1.add(line);
}
// Close it.
reader.close();
// Print size of ArrayList.
System.out.println("file1: " + list1.size());
// Print each line.
for (String line : list1) {
System.out.println(line);
}//list1
System.out.println(" ");
ArrayList<String> list2 = new ArrayList<>();
// New BufferedReader.
BufferedReader reader1 = new BufferedReader(new FileReader(
"2.txt"));
// Add all lines from file to ArrayList.
while (true) {
String line = reader1.readLine();
if (line == null) {
break;
}
list2.add(line);
}
// Close it.
reader1.close();
// Print size of ArrayList.
System.out.println("file2: " + list2.size());
// Print each line.
for (String line : list2) {
System.out.println(line);
}
ArrayList<String> file1 = new ArrayList<String>(list1);
ArrayList<String> file2 = new ArrayList<String>(list2);
file1.removeAll(list2);
file2.removeAll(list1);
System.out.println(" ");
System.out.println("names in file1 that are not in file 2: " + file1);
System.out.println("names in file2 that are not in file 1: " + file2);
}//main
}//class
使用'retainAll',而不是'removeAll'。 –
非常感謝,我肯定是非常傾倒的問題,我希望我會很快好起來。再次感謝。 – junior