java - 按空格分割字符串(java)

标签 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]);

最佳答案

String info = Keyboard.next(); 返回由空格分隔的第一个 String(因此将是 id)在你的情况下。

尝试使用String info = Keyboard.nextLine();,它将返回到新行字符的整个内容。然后您可以使用String#split(或另一个Scanner)来解析文本

关于java - 按空格分割字符串(java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29269800/

相关文章:

java - 我可以将可绘制对象的 int ID 存储在 XML 中吗?

java - 从 Java 检索具有国际名称的 MS Access 列(编码)

java - "PKIX path building failed: unable to find valid certification path to requested target"仅在发布版本中

Java:从具有缓冲输入的随机访问文件中读取字符串

java程序使操作系统难以格式化可移动磁盘

java - 带有 Intent 的空对象引用

java - setToolTipText 消耗鼠标事件的解决方法?

java - 由于冒号而导致 JSONException

java - 具有 PendingIntent 的 LocationManager.requestLocationUpdates 在 API 26 上不起作用

java - 更改 jetty 默认端口