2017-03-03 65 views
0

我想要求用戶輸入多個名稱,用逗號分隔。然後我想分別分解名字。我正在將輸入讀入一個字符串,然後按''分隔。但是,只要用戶在逗號後輸入空格,但在下一個名稱之前輸入空格,程序就無法正常運行。見下文。如何在java中的多個項目中讀取逗號後忽略空格

import java.util.Scanner; 

public class getInput { 

    public static void main(String[] args) { 
     Scanner sc = new Scanner(System.in); 

     System.out.print("Please enter names seperated by a ',':> "); 
     String testInput = sc.nextLine(); 
     String[] names = testInput.split(","); 
     for (String name : names) { 
      String[] partialName = name.split(" "); 
      if (partialName[0].equals(" ")){ 
       if (partialName.length == 4) { 
        System.out.println("Should be a space: " + partialName[0]); 
        System.out.println("First Name: " + partialName[1]); 
        System.out.println("Middle Name: " + partialName[2]); 
        System.out.println("Last Name: " + partialName[3]); 
       } else { 
        System.out.println("First Name: " + partialName[1]); 
        System.out.println("Last Name: " + partialName[2]); 
       } 
      } 
      else { 
       if (partialName.length == 3) { 
        System.out.println("First Name: " + partialName[0]); 
        System.out.println("Middle Name: " + partialName[1]); 
        System.out.println("Last Name: " + partialName[2]); 
       } else { 
        System.out.println("First Name: " + partialName[0]); 
        System.out.println("Last Name: " + partialName[1]); 
       } 
      } 
     } 

     sc.close(); 
    } 
} 

例如:

Please enter names seperated by a ',':> Joe Smith, Jack Sparrow Doe,Steve Parker 
First Name: Joe 
Last Name: Smith 
First Name: 
Last Name: Jack 
First Name: Steve 
Last Name: Parker 

在我看來,就像是在讀那個人的名字第一個逗號後面的空格。我該如何解決?

回答

1

trim()在開始和結束時刪除空格。

String[] names = testInput.split(","); 
    for (String name : names) { 
     String[] partialName = name.trim().split(" "); 
+0

這樣做的竅門,謝謝。 – Tyler

+0

沒問題,你能將我的答案標記爲你的問題的解決方案嗎? – Koche

0

您可以使用「,\ s *」作爲正則表達式,因此正則表達式引擎使用逗號和空格作爲分隔符。

+0

那會在附加到scanner對象的useDelimiter()函數中嗎? – Tyler

+0

在您的拆分方法 –

+0

感謝您的幫助! Eclipse告訴我這是一個無效的轉義序列。我對Java有點新(如果它不是很明顯,哈哈)。如果我得到這個工作,它是否會處理用戶在逗號後沒有包含空格的情況?我需要能夠處理這兩種情況的東西。 – Tyler