使用用户';s输入字符串并在Java中拆分它

使用用户';s输入字符串并在Java中拆分它,java,string,split,java.util.scanner,Java,String,Split,Java.util.scanner,我想从用户那里获取输入,在本例中是他们的全名,并使用.split(“”)命令将其拆分为2或3个部分,具体取决于名称的数量,然后在不同的行上打印结果: 比如说, 用户输入: “约翰·多伊·史密斯” 程序返回: 约翰 母鹿 史密斯 目前,我的代码如下所示: import java.util.Scanner; public class Task2 { public static void main(String[] args) { Scanner input = new Sca

我想从用户那里获取输入,在本例中是他们的全名,并使用.split(“”)命令将其拆分为2或3个部分,具体取决于名称的数量,然后在不同的行上打印结果:

比如说,

用户输入:

“约翰·多伊·史密斯”

程序返回:

约翰

母鹿

史密斯

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

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));

    }
}
当前只返回名称的第一部分


程序还应该能够处理没有中间名的人。

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

input.next()
只返回第一个遇到空格前的第一个字符串,请尝试
input.nextLine()
这可能也可以

执行为,例如java-jar SplitTest.jar

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

非常感谢你!如何将其打印到不同的行?循环(字符串部分:部分){System.out.println(部分);}的
parts
array
for(字符串部分:部分)}
如何使其能够处理2个名称而不是3个名称?它将工作,无论您拥有多少令牌。这描述了问题,而不是解决方案
public class SplitTest {
 public static void main(String[] args) {
  String name = "";
  for (String arg : args) {
   name = arg;
   System.out.println(name);
  }
 }
}