我想从java中的文本文件读取一行。我得到一个java.lang.ArrayIndexOutOfBoundsException: 1
例外。Java .split()由字符串中的空格组成
这里是我的代码:
try {
Scanner kb = new Scanner(new FileReader(fileName));
String line = "";
int count = 0;
while (kb.hasNext()) {
line = kb.next();
String[] temp = line.split("#");
System.out.println(temp[1]);
Wedding tempWed = new Wedding(temp[0], temp[1], temp[2], temp[3], Integer.parseInt(temp[4]));
test[count] = tempWed;
count++;
}
} catch (FileNotFoundException ex) {
}
这是文本文件的行:
Chiquita Sanford#Magee Sosa#2016-11-05#Garden#84
我需要用 “#” 分裂,而这部分工作。 当我尝试访问位置1处的元素时,Java抛出异常。 我认为这是因为名字和姓氏之间存在空格,因为当我显示“Chiquita”而不是“Chiquita Sanford”时。
当第一个数组索引中有多个单词时,Java是否对分割有一些限制。
将'kb.next()'更改为'kb.nextLine()',并将'kb.hasNext()'更改为'kb.hasNextLine()'。 – Andreas
更好的是,不要使用'扫描仪',因为它很慢。改为使用'BufferedReader'及其''readLine()'方法。 – Andreas