[英]Error while splitting string in java : error: array required, but String found
[英]Java error “Array required, but String found” while importing text file
我试图将制表符分隔的文本文件导入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]);
上看到错误this.lab[x][y]=Integer.parseInt(str[x]);
另外,我不知道这是否有帮助,但是文件基本上是一堆1和0,它们形成了一个由制表符分隔的迷宫(1是墙壁,0是走廊)。
有人可以告诉我我做错了什么吗?
提前致谢!
parseInt(str[x])
您不能使用数组下标: []
来索引成String
,而str
显然是String
。
对于解决方案,您可能要考虑使用charAt()
然后使用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]);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.