2016-11-23 4 views
1

から認識されていない入力を取り除くためにどのように、ユーザーが入力は、私の場合、ユーザー

f 0 ,f 1, f 2 
p 0, p 1 ,p 2 
j 0 1, j 0 2, j 1 0....(any combination of 0,1,2) 

私は、これは

Scanner scanner = new Scanner(System.in); 
      str = scanner.nextline() 

しかし、今、私は無効なのを防止するユーザー入力を取得するために使用することができます入力: 0 1、f 0 1、ja 1、f 0、p 0、j 0、abc、fa、pa、j 0a、j 0 4、f 9 ..... (有効組み合わせ)

今、私はidチェック最初の単語(f、p、jのみ) - > 2番目の単語(0,1,2のみ) - > 3番目の単語 - > 4番目の単語....

しかし、明らかにこのメソッドはそうです愚か 。

この場合、どのような方法で解決するのが良いですか?

+1

あなたの文字列にマッチする正規表現を使用することができます... '[FPA] \ sの[012]' – brso05

答えて

0

あなたはこのような何か行うことができます。

public static void main(String[] args) throws RemoteException { 
    Scanner scanner = new Scanner(System.in); 
    String str = scanner.nextLine(); 
    if(str.matches("[fpa]\\s[012]")) 
    { 
     System.out.println("true"); 
    } 
    else 
    { 
     System.out.println("false"); 
    } 
} 
+0

をすることができ、それは、0 1 .Jスペースキーが有効であることを検出しかし、j01はinvaild – evabb

+0

@evabbはい、それは '\\ s'が表すものです。 '\\ s' = space ... – brso05

+0

@evabbもしあなたがj 0 1にマッチしたいなら、あなたの正規表現は' [fpa] \\ s [012] \\ s [012] 'になります。 – brso05

関連する問題