Java读取一行中有多个换行符

时间:2015-02-20 19:24:58

标签: java

我有一个包含三行的文件。我想在每行读入一个字符串。我打算使用java缓冲读卡器

我以为我会做一个while循环,它读取一行直到它到达行尾(\ n)然后将其存储到变量中并继续直到达到EOF。

为什么这不是一个重复的问题的原因是我的文本文件每行都有\ n的负载。如下所示。那么我怎么能读取一行并将其存储到一个字符串中。需要换行符,因为显示需要选项在其自己的行上

example.txt中

Q1: (A + B)*(A+B) \n 1. A*A + B*B \n 2. A*A +A*B + B*B \n 3. A*A +2*A*B + B*B \n
Q2: (A + B)*(A - B) \n 1. A*A + 2*B*B \n 2. A*A - B*B \n 3. A*A -2*A*B + B*B \n
Q3: sin(x)*sin(x) + cos(x)*cos(x) \n 1. 1 \n 2. 2 \n 3. 3 \n

2 个答案:

答案 0 :(得分:3)

正如@Jesper在评论中提到的那样,你对一条线的定义有点偏。您最好的选择是多行读取,直到找到您要查找的分隔符。在这种情况下,您似乎应该寻找Q后跟数字和冒号。

如果一次阅读所有内容不是问题,你甚至可以做这样的事情。

fullString.split("(?<=Q\\d:)");

结果数组将包含一个问题,假设您的文本不包含Q#:在其中的某个位置。

答案 1 :(得分:0)

您可以使用Scanner类的useDelimiter方法。像这样:

Scanner scanner = new Scanner(new File("example.txt"));
scanner.useDelimiter("Q");
while (scanner.hasNext()) {
    String line[i++] = scanner.next();
}