当前位置: 首页 > 知识库问答 >
问题:

Java.split()按字符串中带有空格的字符[duplicate]

索瀚海
2023-03-14

我正在尝试从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对拆分是否有一些限制。

共有1个答案

黄正浩
2023-03-14

您必须使用nextLine方法读取整行。next将读到第一个标记(在您的例子中是“chiquita”,因为它后面跟一个空格字符,并被解释为分隔符)。所以更改这一行:

line = kb.next();

有了这个:

line = kb.nextLine();
 类似资料:
  • 问题内容: 我有一个像这样的字符串: 我正在尝试在Python中编写一些内容,以按空格将其拆分,同时忽略引号内的空格。我正在寻找的结果是: PS。我知道你会问:“如果引号内有引号,那么在我的应用程序中,将永远不会发生。 问题答案: 你需要从内置模块中。 这应该正是你想要的。

  • 我需要构造正则表达式来验证文本,它可以包含空格和连字符,除了连字符之外没有数字和特殊字符。文本应以字母开头。没有以空格和连字符开头和结尾。单词之间应允许使用单个空格。 ASDF-A ADF-AAD A-A-A A DDD-A 示例 AD-AA-A ADF-ad-DD-A AAA

  • 具有以下json片段: 这是我的对象映射器配置 附加注意:Pojo类是使用jsonschema2pojo gradle插件生成的,并且基于json模式

  • 问题内容: 在Go中从某个任意字符串中剥离所有空格的最快方法是什么。 我从字符串包中链接了两个函数: 有人有更好的方法吗? 问题答案: 以下是一些用于从字符串中剥离所有空格字符的不同方法的基准:(源数据): :用途; 随着遇到更多的非空白字符,逐渐增加分配的空间量 :和; 产生大量中间数据 用途; 执行一次分配,但是如果源字符串主要是空格,则可能会总体上分配。 package main_test

  • 问题内容: 如果我必须找到一个字符串名称并且它位于表foo中,那么下面是正常过程, 我试图检查它的两个变体, 工作正常 没有正常工作 谁能解释一下第二个为什么不起作用? 提前致谢 问题答案: CHAR类型 使用空字节 将字符串填充到字段的长度(而VARCHAR添加定界符以指示字符串的末尾-因此忽略了末尾的额外数据( 我的意思是空字节 )),因此,在字符串末尾有空格的比较最终将忽略那些。前导空格很重

  • 本文向大家介绍如何在JavaScript中的第一个字符串中添加两个带有空格的字符串?,包括了如何在JavaScript中的第一个字符串中添加两个带有空格的字符串?的使用技巧和注意事项,需要的朋友参考一下 要添加两个字符串,我们需要一个'+'运算符来在字符串之间创建一些空间,但是当第一个字符串本身包含空格时,就无需显式分配空间。  在下面的示例中,由于字符串'str1'中包含空格,因此仅串联 而没有