【问题标题】:Java error "Array required, but String found" while importing text file导入文本文件时出现 Java 错误“需要数组,但找到字符串”
【发布时间】:2016-06-12 06:58:43
【问题描述】:

我正在尝试将制表符分隔的文本文件导入到二维数组中,但是在尝试将拆分后的字符串的值分配到数组中时,我收到错误“需要数组,但找到了字符串”。

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

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 是走廊)。

谁能告诉我我做错了什么?

提前致谢!

【问题讨论】:

  • 我什至没有看到你已经初始化了你的数组。
  • 请删除你没用的StringBuilder,先使用buffer=s.split("\t")。你的代码太混乱了。

标签: java arrays string import stringbuilder


【解决方案1】:

parseInt(str[x])

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

【讨论】:

  • 我实际上试图将值分配给数组实验室而不是 str D:
  • 没关系,我知道我做错了什么,我应该解析我的缓冲区而不是 str - 这就是我在深夜编码得到的结果,哈哈,无论如何谢谢你
【解决方案2】:

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

你需要解析你的buffer:

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

【讨论】:

  • 哦 **** 你的权利,我真是个白痴,这就是我在深夜编码得到的,谢谢!
【解决方案3】:

你声明 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]);
  }

【讨论】:

  • 是的,你的权利我搞砸了哈哈!这就是我在深夜编码得到的结果,哈哈
  • 你的标点符号和语法也很糟糕。那应该是“你是”而不是“你的”:-)
  • 是的,正如我所说,这里真的很晚了,我想我会在早上继续编码,以免让自己更加尴尬
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-09
  • 1970-01-01
  • 2013-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多