Java错误"需要数组,但找到String"导入文本文件

时间:2016-06-12 06:58:43

标签: java arrays string import stringbuilder

我试图将制表符分隔的文本文件导入到2D数组中,但是当尝试将分割的String的值分配到数组中时,我得到错误"需要数组,但找到String"

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

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个走廊)由制表机界定。

有人可以告诉我,我做错了吗?

先谢谢!

3 个答案:

答案 0 :(得分:2)

  

parseInt(str[x])

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

答案 1 :(得分:1)

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

您需要解析buffer

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

答案 2 :(得分:1)

你声明str如下:

$products = Product::with('prices')->get();
foreach ($products as $product)
{
    $minPrice = $product->prices->min('price');
    // Do something with $product and $minPrice
}

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

min()

声明将其声明为 String s,str; 。用法(参见 this.lab[x][y]=Integer.parseInt(str[x]); !!的RHS)尝试将其用作String的数组。

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

=