2011-02-15 78 views
1

我希望能够读取其行和列的文本文件并将数据放入矩阵中。这是我到目前为止。我有一个类型为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> 

回答

2

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

您试图以整数扫描字符串“row = 2”。在这种情况下,您不能使用nextInt。尝试nextLine,然后拆分=以获取该值。

例子:

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

得到一个出界的错误,当我尝试这一点。 – dawnoflife 2011-02-15 09:23:28