在Java中检测到一系列数字中的新行

时间:2011-04-12 03:31:45

标签: java java.util.scanner

假设我有一系列数字,比如......

 1 2 3 4
 5 6 7 8
 9 0

我如何逐步完成每个int,但是当我到达新行时停止?我目前正在使用nextInt(),我知道nextLine()会检测到新行,但我不确定如何将它拼凑在一起。是否最好采用整行,并将字符串解析为单独的整数?或者有更流畅的方法吗?

对于我的示例,我希望程序将1 2 3 45 6 7 89 0存储在各自独立的数组中。

有关更多说明,我正在使用java.util.Scanner而我正在阅读文本文件。

2 个答案:

答案 0 :(得分:1)

如果要使用Scanner,请将整行读入字符串,然后在字符串上构建扫描程序。

答案 1 :(得分:0)

您可以在阅读模式下打开文本文件,并使用readLine()方法读取整行。

然后你可以用空格('')分割读取的行,这将自动给你一个数组。

你可以这样做直到文件结束。

import java.io.*;
class FileRead 
{
   public static void main(String args[])
  {
      try{
    // Open the file 
    FileInputStream fstream = new FileInputStream("textfile.txt");
    // Get the object of DataInputStream
    DataInputStream in = new DataInputStream(fstream);
    BufferedReader br = new BufferedReader(new InputStreamReader(in));
    String strLine;
    delimiter = " ";
    int myArr[];
    //Read File Line By Line
    while ((strLine = br.readLine()) != null)   {
      myArr = strLine.split(delimiter);
      // store this array into some global array or process it in the way you want.
    }
    //Close the input stream
    in.close();
    }catch (Exception e){//Catch exception if any
      System.err.println("Error: " + e.getMessage());
    }
  }
}

希望这有帮助。