java - 将扫描仪输入拆分为字符串

标签 java arrays string split java.util.scanner

我一直在寻找这个问题的答案,但由于某种原因,它们似乎都不起作用。

public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);

    System.out.println("Please enter full name (last, first)");
    String[] personalInfo = scanner.next().split(", ");
    String firstName = personalInfo[1];
    String lastName = personalInfo[0];

    System.out.println("Your info: " +  firstName + " " + lastName);

这是我的代码。我基本上是想获取个人信息,即名字和姓氏。我想将名字和姓氏分成 2 个不同的字符串,但每当我尝试打印它时,都会收到错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 > out of bounds for length 1 at Fines.main(Fines.java:11)

我很困惑,因为我什至像我应该的那样以 0 开始数组..我只是不明白出了什么问题。

请帮帮我 - 提前致谢!

最佳答案

您想要的是scanner.nextLine()从标准输入读取直到行尾。然后 split 将按您的预期工作。

Scanner scanner = new Scanner(System.in);

System.out.println("Please enter full name (last, first)");
String[] personalInfo = scanner.nextLine().split(", ");
String firstName = personalInfo[1];
String lastName = personalInfo[0];

System.out.println("Your info: " +  firstName + " " + lastName);

关于java - 将扫描仪输入拆分为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53349229/

相关文章:

java - 使用sql比较java中的日期与当前日期

java - 使用 Hibernate 将 Oracle 日期映射到 Java 对象

Javascript:在维护对象的同时连接数组

arrays - FOR IN 循环出错

java - 使用 Java 计算文本文件中的数字

c++ - 如何找到字符串中每个后缀的出现次数?

java - PaintComponent() 的问题

java - fragment : Cannot get string path from onActivityResult

c - 比较两个应该相同的单词时 strcmp 失败

c - 如何让字符串接收 int 值?这与转换无关