TrM*_*ako 1 java arrays file input line
所以我正在读取一个输入文本文件,该文件是4行单空格分隔数字.文本文件只是:
5
9 6
4 6 8
0 7 1 5
Run Code Online (Sandbox Code Playgroud)
我想将这些数字输入到一个名为rows的2D数组中.例如,rows[1][0]应该是9第二行中的第一个数字.
我的问题是当我使用扫描仪时,in.next()或者in.nextInt()它忽略了行的结束而只是继续前进,所以rows[0][1]结束了而9不是0.0如果该插槽没有编号,我希望数组完成填充.如此以来,第一行是唯一的1号码,5我想为阵rows[0][0]要5,但rows[0][1]要rows[0][3]要0.
我尝试过使用try/catch NoSuchElementException和if,in.hasNextLine()但这些似乎都不起作用.
任何想法或帮助将不胜感激.
您可以使用扫描仪读取单个令牌,也可以使用扫描仪读取整行,但不能使用扫描仪同时执行这两种操作.
你想要做的是首先将该行读入String,然后使用该String上的Scanner来解析该行,例如:
BufferedReader lineReader = new BufferedReader(...);
String line;
while ((line = lineReader.readLine()) != null) {
Scanner scanner = new Scanner(line);
// use scanner here
}
Run Code Online (Sandbox Code Playgroud)
您也可以使用扫描仪读取行而不是BufferedReader,但除非您有特定要求(例如,您试图将其放入已使用扫描仪的代码中),否则读取行的方式并不重要.
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
23199 次 |
| 最近记录: |