按空格拆分字符串(java)

时间:2015-03-26 01:54:50

标签: java

我正在尝试在一行中读取学生信息,该行包含ID,姓名,年龄和gpa。我想用空格分割行,并将每个标记存储在我的字符串数组Splited []中。为什么这段代码在行String name = splited[1];上给出了ArrayOutOfBounds错误? 样本输入:3844 Jim 30 3.4 谢谢

       String [] splited = new String [4];

       System.out.println("Enter student Id, name, age and gpa: ");
       String info = keyboard.next();
       //separate student info line by spaces
          splited = info.split("\\s");

       int id = Integer.parseInt(splited[0]);
       String name = splited[1];
       int age = Integer.parseInt(splited[2]);
       double gpa = Double.parseDouble(splited[3]);

2 个答案:

答案 0 :(得分:2)

String info = keyboard.next();返回的第一个String在您的情况下以空格分隔(因此为id)。

尝试使用String info = keyboard.nextLine();,它会将整个内容返回到换行符。然后,您可以使用String#split(或其他Scanner)来解析文本

答案 1 :(得分:0)

为什么不简单地使用" "而不是" \ s"拆分输入。你应该检查输入的有效性。

实际问题是:keyboard.next()只读取下一个单词(space是扫描程序的defaultdelimiter)。请改用keyboard.nextLine()。