2017-09-30 89 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); 
    } 
} 
} 
相關問題