我正在尝试使用扫描程序类将文件内容读取到字符数组中,并且不断从代码中获取超出范围的字符串索引错误,而且我不确定这是怎么回事
File fileName = null;
if(0<args.length) {
fileName = new File(args[0]);
}
Scanner s = null;
try {
s = new Scanner(fileName);
s.useDelimiter(",");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
char[]array = new char[26];
while(s.hasNext()) {
for(int i=0; i<27; i++) {
array[i] = s.next().charAt(i);
}
}
答案 0 :(得分:2)
据我所知,您的代码与以下代码等效,没有超出范围的异常
char[]array;
while(s.hasNext()) {
array = s.next().toCharArray();
}
但是,在while循环之后,您的数组将仅等于最后扫描的值。
如果您使用单个逗号分隔的字符,则可以使用以下字符。您不需要现有循环中的循环
char[]array = new char[26];
int i = 0;
while(s.hasNext()) {
array[i++] = s.next().charAt(0);
}
答案 1 :(得分:1)
在您的for循环中,您尝试访问a [26],但是您声明了26个字符的内存。因此,您只能访问a [0]到a [25]。