我是java的新手(2周前刚开始上课)。
它是一个大学练习,我有2个txt文件1.txt和2.txt,文件1有3个名字(peter,ann和albert)文件2(peter,lennon和smeagol)。
我必须编写一个程序来读取文件,然后比较并回答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
答案 0 :(得分:0)
迭代两个数组并进行比较:
if(string1.equals(string2)){
print(string1)
}
答案 1 :(得分:0)
您可以使用retainAll
获取两个集合之间的交集,例如
List<String> one = new ArrayList<>(); one.add("foo"); one.add("bar");
List<String> two = new ArrayList<>(); two.add("foo"); two.add("baz");
one.retainAll(two);
System.out.println(one);
将输出:
[foo]