【发布时间】:2026-02-05 00:25:02
【问题描述】:
我有一个文本文件,其中的字段由 | 分隔操作员。 txt 文件中的第一行包含列名称。我能够根据 | 解析和拆分字段操作员使用扫描仪,但我需要每个字段值的标题列名称
请在下面找到我需要解析的示例文本文件内容: 名字||姓氏||年龄||薪水
金刚||金||20||$1000
史蒂夫||罗杰斯|| ||$2000
马克||更富有||30||$12000
斯宾塞||厨师||31||$700
我现在得到的结果:
名字
姓
年龄
工资
孔
国王
20
1000 美元
史蒂夫
罗杰斯
2000 美元
标记
更丰富
30
12000 美元
斯宾塞
做饭
31
700 美元
我使用的示例代码:
FileInputStream inputStream = new FileInputStream("c:\\sample\\sample.txt");
Scanner scanner = new Scanner(inputStream, "UTF-8");
scanner.useDelimiter("[\\||]");
while(scanner.hasNext()){
System.out.println(scanner.next().trim());
}
scanner.close();
}
我需要的结果如下:
名字 -> 孔
姓氏 -> 国王
年龄 -> 20
薪水 -> 1000 美元
名字 -> 史蒂夫
姓氏 -> 罗杰斯
年龄 ->
薪水 -> $2000
任何帮助表示赞赏..
【问题讨论】:
-
只要使用任何标准的 CSV 库,就可以停止重新发明*。任何解析器都可以在几行代码中正确地做到这一点。我建议您为您的对象创建一个 bean 类型 - 然后读入一个 bean 列表。 For example.
标签: java spring parsing java.util.scanner bufferedreader