扫描仪类和跳过模式

时间:2011-02-15 08:56:59

标签: java

我希望能够读取行和列的文本文件,并将数据放入矩阵中。这是我到目前为止所得到的。我有一个矩阵类,其中一个数据成员称为int类型的元素,它是一个二维数组[] []。

import java.io.*;
import java.util.*;

public class test{
    public static void main(String args[]) throws FileNotFoundException {
    File fin = new File ("matrix1.txt");
    Scanner scanner = new Scanner(fin);
    scanner.next(); // removes the first line in the input file 
    int rows = scanner.nextInt();
    int cols = scanner.nextInt();
    while (scanner.hasNextLine()){
         String line = scanner.nextLine();
         System.out.println(line);
         }
    System.out.println(rows);
    System.out.println("/n");
    System.out.println(cols);
    }

}

示例文本文件如下。我想获取行和列,以便我可以动态声明矩阵,然后存储其值。我得到错误说INPUTMISMATCH异常。帮助将不胜感激。

<matrix>
    rows = 2
    cols = 2

1 2
2 4 
</matrix>

1 个答案:

答案 0 :(得分:2)

如果下一个标记与整数正则表达式不匹配或超出范围,则从javacdocs抛出InputMismatchException“。

您正在尝试将字符串“row = 2”扫描为整数。在这种情况下,您无法使用nextInt。尝试nextLine,然后在=上拆分以获取值。

示例:

String rowLine = scanner.nextLine();
String[] arr = rowLine.split("=");
int rows = Integer.parseInt(arr[1].trim());