2016-11-17 4 views
1

私はemployeenumber XXX-Lを除いて試しています。xは0-9の範囲の数字で、LはA-Mの範囲の文字です。私はこのコードの作業をしようとしています。私は有効な入力を入力することはできません。特別な形式の文字列入力検証

import java.util.Scanner; 
import java.util.InputMismatchException; 

public class ObjectOrinetPrograming 
{ 
    public static void main(String [] args) 
    { 
     Scanner input = new Scanner (System.in); 
     System.out.println("Please Enter elements: "); 
     String employeenumber = input.nextLine(); 
     while (employeenumber.length() != 5) 
     { 
      System.out.println("invalid input; lenght, Try again:"); 
      employeenumber = input.nextLine(); 
     } 


      while (employeenumber.charAt(4) != ('A'|'B'|'C'|'D'|'E'|'F'|'G'|'H'|'I'|'J'|'K'|'L'|'M')) 
      { 
       System.out.print("invalid input; charrecter match, try again:"); 
       employeenumber = input.nextLine(); 
      } 


     while (employeenumber.charAt(0) == '-') 
     { 
      System.out.println("Invalid Input; form, try again:"); 
      employeenumber = input.nextLine(); 
     } 
     } 

} 

答えて

0

あなたはすべてのあなたの入力を検証できるようになりますmatches、使用する必要があります。

import java.util.Scanner; 
import java.util.InputMismatchException; 
public class ObjectOrinetPrograming 
{ 
    public static void main(String [] args) 
    { 
     Scanner input = new Scanner (System.in); 
     System.out.println("Please Enter elements: "); 
     String employeenumber = input.nextLine(); 

     while (!employeenumber.matches("[0-9]{3}-[A-Ma-m]")) { 
      System.out.println("invalid input; lenght, Try again:"); 
      employeenumber = input.nextLine(); 
     } 

    } 

} 
+0

おかげで多くのバディ。 – Muzy

+0

@Muzy私はあなたのために私の答えを更新しました。 – BlackHatSamurai

+0

@Muzy正規表現はあなたの要求に合うように** [0-9] {3} - [A-Ma-m] **になります。 – m4heshd

1

入力employeenumberに一致する正規表現を使用できます。

public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    System.out.println("Please Enter elements: "); 
    String employeenumber = input.nextLine(); 
    while (!employeenumber.matches("[0-9]{3}-[A-M]")) { 
     System.out.println("invalid input; lenght, Try again:"); 
     employeenumber = input.nextLine(); 
    } 

    System.out.println("Your employee id is " + employeenumber); 

} 
+2

小さな修正を。正規表現は** [0-9] {3} - [AM] ** – m4heshd

+0

でなければなりません@iNanありがとう、私はそれを試してみました。例えば123-Aは正しい入力です。入力。私は入力として1文字以外のあなたのコードは、私がしようとしているのは5文字を除いていると思う。しかし、とにかくありがとう。編集を適用した後、 – Muzy

+1

@ m4heshdが機能しました。ありがとう、たくさんの人。 – Muzy

関連する問題