gpt4 book ai didi

Java .split() 按字符串中带空格的字符

转载 作者:行者123 更新时间:2023-12-01 16:47:42 25 4
gpt4 key购买 nike

我正在尝试从 java 的文本文件中读取一行。我得到一个java.lang.ArrayIndexOutOfBoundsException: 1异常。

这是我的代码:

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 抛出异常。我认为这是因为名字和姓氏之间有一个空格,因为当我 System.out.println(temp[0])它显示“Chiquita”而不是“Chiquita Sanford”。

当第一个数组索引中有多个单词时,Java 对拆分是否有一些限制。

最佳答案

您必须使用nextLine方法来读取整行。 next将读取直到第一个标记(在您的情况下为“Chiquita”,因为它后面跟着一个空格字符并被解释为分隔符)。因此更改这一行:

line = kb.next();

这样:

line = kb.nextLine();

关于Java .split() 按字符串中带空格的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46837170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com