问题:
我在一个.txt文件中有这组数字,我想用 java.util.Scanner
检测中间的线路馈送 123
, 456
,和 789
,打印出换行符之间的数字,有什么办法吗?
1 2 3
// \n here
4 5 6
// \n here
7 8 9
输出: 456
===========================================================================
我尝试过的解决方案:
(1) 我尝试使用hasnextline()方法,但是,hasnextline()似乎会告诉我下一行中是否有标记,并返回布尔值,而不是告诉我是否有标记\n。 if (scan.hasNextLine()) { \\ do something }
(2) 我还尝试使用:(但是,使用这样的条件会说“syntax error on token'invalid character'”)
Scanner scan = new Scanner(new File("test.txt"));
// create int[] nums
while (scan.hasNext()) {
String temp = scan.next();
if (temp == \n) {
// nums.add(); something like this
}
}
System.out.print(nums); // something like this
我想用 \n
作为分隔符
另外,我做了google,大多数结果都告诉我使用.hasnextline(),但我希望它能识别换行符(\n)
3条答案
按热度按时间gtlvzcf81#
lyfkaqu12#
Scanner
使用扫描下一个元素new-line
或者whitespace
默认情况下作为分隔符。让它阅读整个内容使用scan.useDelimiter("\\Z")
.输出:
niknxzdl3#
我不确定我是否100%理解你的问题。所以我假设你的文件总是有两行被一行新行隔开(
\n
). 如果我错了,请告诉我。如果您想要简单的方式,无需尝试捕捉:
结果(两者):