java - 与数组索引相关的错误

标签 java split

下面的代码有变量“name”。这可能包含名字和姓氏或仅包含名字。此代码检查变量“名称”中是否有任何空格。如果空间存在,那么它就会 split 。

但是,在以下情况下,我收到“错误:线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:1 at Space.main(Space.java:9)”

  • 如果“Richard”前有空格
  • 如果“Richard”后没有第二个单词或第二个字符串的空格。
  • 如果我在“Richard”之后有两个空格,那么它不会将该名称保存在 lname 变量中。

如何解决这个错误。

public class Space {
    public static void main(String[] args) {
    String name = "Richard  rinse ";
    if(name.indexOf(' ') >= 0) {
        String[] temp;
        temp = name.split(" ");
        String fname = temp[0];
        String lname = temp[1];
        System.out.println(fname);
        System.out.println(lname);
    } else {
        System.out.println("Space does not exists");}
    }
}

最佳答案

你必须像这样使用“\s”分割字符串

name.split("\\s+");

关于java - 与数组索引相关的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12459756/

相关文章:

java - 如何从 jComboBox 中删除所有项目而不触发操作监听器?

python - 拆分字符串而不丢失分隔符(及其计数)

javascript - 在每个数字处分割一个字符串

javascript - 将正则表达式拆分为数组

javascript - JS : Extracting Parts from a String (Paragraph) on variable length

java - android.content.res.Resources$NotFoundException : String resource ID #0x0

java - ImageIO 写入方法 - javax imageio IIOException 无法创建输出流

java - 本地主机上的 Tomcat v8.0 服务器所需的端口 8080 已被使用

java - 具有延迟加载业务标识符的 Hibernate/JPA equals() 和 hashCode()

java - 在java中分割包含使用符号的数学函数