当我尝试从控制台(Java)标记输入时,为什么会出现ArrayIndexOutOfBoundsException?
我试图使用split方法将输入与控制台分离,然后将这些值分别放入单独的容器中,并且不断出现以下错误:当我尝试从控制台(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
线程“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()
方法只在下一个定界符(默认为任何空格)之前使用。扫描器的下一个方法将只占用字符串的第一部分。如果字符串之间有空格,它将不会拾取第二部分,因此您将得到此错误