当我尝试从控制台(Java)标记输入时,为什么会出现ArrayIndexOutOfBoundsException?

当我尝试从控制台(Java)标记输入时,为什么会出现ArrayIndexOutOfBoundsException?,java,arrays,exception,delimiter,tokenize,Java,Arrays,Exception,Delimiter,Tokenize,我试图使用split方法将输入与控制台分离,然后将这些值分别放入单独的容器中,并且不断出现以下错误:线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:索引1超出长度1的界限。我假设问题是它忽略了第一个空格后的输入,但我不知道为什么以及如何解决这个问题 有人能告诉我我做错了什么,并建议我应该怎么做,以便将空格后的文本存储在我的容器中吗?先谢谢你 Scanner s = new Scanner(System.in); Syst

我试图使用split方法将输入与控制台分离,然后将这些值分别放入单独的容器中,并且不断出现以下错误:
线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:
索引1超出长度1的界限。我假设问题是它忽略了第一个空格后的输入,但我不知道为什么以及如何解决这个问题

有人能告诉我我做错了什么,并建议我应该怎么做,以便将空格后的文本存储在我的容器中吗?先谢谢你

    Scanner s = new Scanner(System.in);

    System.out.println("Input the name and phone no: ");
    String text = s.next();

    String[] temp = text.split(" ");

    String name = temp[0];
    String phoneNoTemp = temp[1];

    System.out.println(name + ": name");
    System.out.println(phoneNoTemp + ": phoneNoTemp");
我尝试的输入是:

Input the name and phone no: 
kate 99912222

旁注:是的,我确实导入了扫描器

尝试使用
s.nextLine()
而不是
s.next()
,因为
next()
方法只在下一个定界符(默认为任何空格)之前使用。扫描器的下一个方法将只占用字符串的第一部分。如果字符串之间有空格,它将不会拾取第二部分,因此您将得到此错误