【发布时间】:2020-12-15 16:10:23
【问题描述】:
我有一个 txt 文件,格式如下:
1 | Argentina |Y|POSTAL_C |CAPITAL|STATES
我想转换由“|”分隔的每个位置,可以是这样的示例数组中的位置:
0 | 1 |2|3 |4 |5
1 | Argentina |Y|POSTAL_C |CAPITAL|STATES
并在数组中处理它们
My code
public void ReadFile2() throws IOException {
String referencePath = "C:\\Users\\Admin\\Desktop\\PRUEBA.txt";
BufferedReader br;
br = new BufferedReader(new FileReader(referencePath));
String lines = br.readLine();
lines.split("\n", 6);
this.logger.info("Starting...");
while (lines != null) {
if (!lines.isEmpty() && lines.length() >7) {
String[] values = lines.split("|");
System.out.println(values[0]); ----> should return 1
}
lines = br.readLine();
}
br.close();
}
感谢你的cmets
【问题讨论】:
-
split()在字符串上调用会返回一个字符串数组。当您执行lines.split("\r", 6);并且不将其分配给任何内容时,对 split 的调用将不会执行任何操作,因为它返回的值会丢失。您的 while 循环很可能是无止境的,因为行仍然包含br.readLine()的结果,因此永远不会为空。我不知道为什么要检查字符串的长度是否大于 7。如果文件有多行,则循环应该包含读取该行,否则您只会读取一行。 -
我正在尝试先通过换行符“\n”进行迭代,然后通过管道分隔,以便访问对象,您有什么想法如何解决您开始的问题在你的评论中? @JustAnotherDeveloper
-
在字符串上调用
split("|");来保存您读取的行的值会给您想要的。 -
.split("|") don't work men xd 我已经尝试过@JustAnotherDeveloper
-
检查我对之前评论所做的编辑。如果你用“\\|”分割,它会起作用
标签: java bufferedreader