获取用户的输入字符串并将其拆分为Java

时间:2017-09-30 17:04:21

标签: java string split java.util.scanner

我想从用户那里获取输入,在这种情况下,他们的全名,并将它与.split("")命令分成2或3个部分,具体取决于名称的数量,然后在不同的行上打印出结果:

例如,

用户输入:

" John Doe Smith"

程序返回:

约翰

Doe的

史密斯

目前,我的代码如下所示:

import java.util.Scanner;
public class Task2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String name;
        System.out.println("Enter your full name: ");
        name = input.next();
        String[] parts = name.split(" ");
        System.out.println(java.util.Arrays.toString(parts));

    }
}

目前只返回名称的第一部分。

该计划还应该能够处理没有中间名的人。

4 个答案:

答案 0 :(得分:4)

input.next()仅返回第一个遇到空格之前的第一个字符串,请尝试input.nextLine()

答案 1 :(得分:1)

import java.util.Scanner;

public class Task2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        String name;
        System.out.println("Enter your full name: ");
        while (input.hasNext()) {
            name = input.next();
            String[] parts = name.split(" ");
            System.out.println(java.util.Arrays.toString(parts));
        }
    }
}

答案 2 :(得分:0)

查看JavaDoc of Scanner,next()方法返回输入流的下一个标记。不是整行。

答案 3 :(得分:0)

这也可能有用。

执行为例如java -jar SplitTest.jar Something Null

public class SplitTest {
 public static void main(String[] args) {
  String name = "";
  for (String arg : args) {
   name = arg;
   System.out.println(name);
  }
 }
}