2017-09-30 91 views
-2

我希望从用户那里获取输入,在这种情况下,他们的全名与.split(“”)命令分成2或3个部分,具体取决于名字的号码,然后打印出结果在不同线路上:以用户的输入字符串并将其拆分为Java

例如,

用户输入:

“李四史密斯”

程序返回:

约翰

李四

史密斯

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

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

    } 
} 

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

该方案还应该能够应付没有一个中间名的人。

+0

非常感谢您!我怎样才能打印到不同的行? – Nawlidge

+1

环路的'parts'阵列上 '为(字符串部分:份){ 的System.out.println(部分); }' –

+0

什么使得它,所以它可以处理2名,而不是3? – Nawlidge

回答

4

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

0

检查出JavaDoc of Scanner,next()方法返回输入流的下一个标记。不是整条线。只有

+2

它都能正常工作描述问题而不是解决方案 –

+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)); 
     } 
    } 
} 
0

这也将工作,也许。

执行的作为例如Java的罐子SplitTest.jar东西空

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