2017-03-03 2 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

スキャナオブジェクトに添付されているuseDelimiter()関数内にあるとしますか? – Tyler

+0

分割方法 –

+0

ご協力ありがとうございます! Eclipseは無効なエスケープシーケンスであると私に伝えています。私はJavaには少し新しい(それが明らかでないならば、笑)。もし私がそれを働かせたら、ユーザーがコンマの後にスペースを入れなかった状況を処理しますか?私は両方の状況に対応できるものが必要です。 – Tyler

関連する問題