java - 从 Java 中的 2 个文件中打印匹配信息
问题描述
我正在尝试编写一个程序来检查两个文件并打印这两个文件的共同内容。
文件 1 内容的示例是:
James 1
Cody 2
John 3
文件 2 内容的示例是:
1 Computer Science
2 Chemistry
3 Physics
所以控制台上打印的最终输出将是:
James Computer Science
Cody Chemistry
John Physics
到目前为止,这是我的代码中的内容:
public class Filereader {
public static void main(String[] args) throws Exception {
File file = new File("file.txt");
File file2 = new File("file2.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
BufferedReader reader2 = new BufferedReader(new FileReader(file2));
String st, st2;
while ((st = reader.readLine()) != null) {
System.out.println(st);
}
while ((st2 = reader2.readLine()) != null) {
System.out.println(st2);
}
reader.close();
reader2.close();
}
}
我无法弄清楚如何匹配文件内容,并通过匹配每个文件中的学生 ID 仅打印学生姓名和他们的专业。感谢所有的帮助。
解决方案
您可以使用其他答案并对每个文件创建一个对象,例如数据库中的表。
public class Person{
Long id;
String name;
//getters and setters
}
public class Course{
Long id;
String name;
//getters and setters
}
他们可以更好地控制您的列,并且使用起来很简单。此外,您将使用 anArrayList<Person>
和 anArrayList<Course>
并且您的关系可以是对象内部的变量,例如courseId
在Person
类或其他东西中。
if(person.getcourseId() == course.getId()){
...
}
他们如果匹配的是文件的第一个数字,则使用person.getId() == course.getId()
. Ps:不要在您的情况下使用split(" ")
,因为您可以拥有其他具有两个值的对象,即1 Computer Science
.
推荐阅读
- python - 弹出故障没有找到目录?
- mysql - Mysql 正在寻找更多,估计行,然后是预期
- android - 使用 Log for Volley Post 方法
- javascript - 在 d3 条形图中自定义网格线
- python - ModuleNotFoundError:没有名为“projeler_ile_python”的模块
- javascript - 如果我从服务器请求数据,“ComponentDidMount”钩子会触发内存泄漏
- python-3.x - 从 python 生成 Faker 数据并将其加载到 BigQuery 嵌套表中
- c - 编码/解码程序的逻辑错误 (C)
- javascript - 克隆和换行时如何防止单词溢出?
- javascript - 以角度 8 加载子组件时更改父组件高度样式