Vala逐行读取文件

时间:2012-04-14 15:08:17

标签: java file-io io

int n = sc.nextInt();
char[][] original = new char[n][n];
char [][] result = new char[n][n];
String line;

for (int i = 0; i < n; i++) {
  line = sc.nextLine();
  System.out.println(line);
  for (int u = 0; u < n; u++) {
    original[i][u] = line.charAt(u);
  }
}

for (int i = 0; i < n; i++) {
  line = sc.nextLine();
  for (int u = 0; u < n; u++) {
    result[i][u] = line.charAt(u);
  }
}

我有一个看起来像这样的文件:

2
ha
ah
lo
ol

我在第一行有一个整数N,然后有两个N * N个字符矩阵。

我正在尝试将它们读取到两个字符数组数组中,但是我收到了这个错误:

线程“main”中的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0     at java.lang.String.charAt(String.java:695)     在transform.main(transform.java:25)

第25行是:

original[i][u] = line.charAt(u);

我只是不明白,我想我做的一切都很好。有任何想法吗?谢谢!

1 个答案:

答案 0 :(得分:2)

我认为您的sc是扫描程序实例?方法nextInt()会读取您文件中的下一个数字,但处理以下换行符。因此,您对nextLine()的第一次调用将只返回一个空字符串(即所有字符,直到换行尚未处理)。您将看到println(...)调用确实打印出一个空行。您可以在循环之前插入对newLine()的调用来修复此行为。