Java 导入文本文件时出错 "Array required, but String found"

Java error "Array required, but String found" while importing text file

我正在尝试将制表符分隔的文本文件导入二维数组,但在尝试将拆分字符串的值分配给数组时出现错误 "Array required, but String found"。

到目前为止,这是我的代码:

try {
            FileReader fr = new FileReader ("Laberinto.txt");
            BufferedReader br = new BufferedReader(fr);

            String s,str;
            String[] buffer;

            int y=0;

            while ((s=br.readLine())!= null){
                StringBuilder builder = new StringBuilder();
                str=builder.append(s).toString();
                buffer=str.split("\t");

                for (int x=0;x<str.length();x++){
                    this.lab[x][y]=Integer.parseInt(str[x]);
                }

                y++;
            }
}

我在 this.lab[x][y]=Integer.parseInt(str[x]);

行收到错误

此外,我不知道这是否有帮助,但该文件基本上是一堆 1 和 0,它们形成一个由制表符分隔的迷宫(1 是墙壁,0 是走廊)。

有人能告诉我我做错了什么吗?

在此先致谢!

parseInt(str[x])

您不能使用数组下标:[],索引到 String,显然 strString.
对于您可能要考虑使用 charAt() and then String.valueOf(char) 的解决方案,它会在您需要时将 char 转换回来。

str 是一个字符串 - 您输入的一行...这不是您想要的。

您需要解析您的 buffer:

for (int x=0;x<buffer.length();x++){
     this.lab[x][y]=Integer.parseInt(buffer[x]);
}

您声明了 str 如下:

  String s,str;

并尝试按如下方式使用它:

  this.lab[x][y]=Integer.parseInt(str[x]);

声明声明为String。用法(参见=的RHS !!)试图将其用作String.

的数组

实际上,我认为你真正的错误是你试图解析错误的东西。我觉得应该是这样的:

  buffer=str.split("\t");
  for (int x=0;x<buffer.length;x++){
      this.lab[x][y]=Integer.parseInt(buffer[x]);
  }