在java.util.Scanner.nextLine(未知来源)

时间:2015-09-10 06:01:02

标签: java

如何使此停止超过防止崩溃的实际值?

    String[][] firstLine = new String[8][10];
    Scanner input = new Scanner(new File("lab1.dat"));
    String temp2 = " ";


    for(int i = 0; i < firstLine.length; i++){
        for(int j = 0; j < firstLine[i].length; j++){
            firstLine[i][j]  = input.nextLine();
            System.out.println(firstLine[i][j] );

1000 1011 1006 1211 1854 1799 10 34 18 96 45
10 R W X O A N O N N N X
34 N A W X X R N O N R N
18 W N N A X N N N O N N
96 W W W R R X N R N O W
45 R W N O N N N N X R O
10 1006 
34 1000
34 34
96 1211
96 1854
45 18
34 1211
-1 -1

2 个答案:

答案 0 :(得分:0)

查看扫描程序方法hasNextLine()并尝试在代码中使用它。 也许是这样的:

  String[][] firstLine = new String[8][10];
   Scanner input = new Scanner(new File("lab1.dat"));
    String temp2 = " ";

for(int i = 0; i < firstLine.length; i++){
    for(int j = 0; j < firstLine[i].length; j++){
       if(input.hasNextLine()){
        firstLine[i][j]  = input.nextLine();
        System.out.println(firstLine[i][j] );
       }

或者您可以try-catch使用nextLine()方法并在NoSuchElementException阻止中处理catch

答案 1 :(得分:0)

我认为您在调用input.hasNextLine()时必须使用nextLine,您应该检查扫描仪是否有。{/ p>

       try {
            String[][] firstLine = new String[8][10];
            Scanner input = new Scanner(new File("lab1.dat"));
            int count  = 0 ;
            //80 is the number of lines you want to read
             while(input.hasNextLine() && count < 80){ 
                 firstLine[count%8][count%10] = input.nextLine();
                 System.out.println( firstLine[count%8][count%10]);
                 count++;

             }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }