2016-12-14 10 views
0

より大きいプログラムのための簡単なテストプログラムを書いています。ここで、文字列の範囲をgからgまで検証する必要があります。Java - 文字の範囲内で文字列を検証する

以下のテストプログラムでは、手紙を要求してから、a-gの範囲内で承認メッセージを印刷するか、そうでなければ「oops」と言って再度質問してください。

+4

あなたはこのコードをコンパイルしますか? [if(input == maxValue || minValue)] – pringi

+0

今後の質問:「範囲(a-g)をチェックしている間にコードにエラーがあります」はあまりにも非特異的です。エラーが発生した場合は、多くの情報を投稿してください(どのエラーが発生したか、どこで何が起こるか、どんなことが期待されますかなど)。 – Thomas

+0

"文字列の検証が必要な場所"または文字が必要です。入力は何ですか? – SparkleGoat

答えて

0

Stringからcharを取得するには、charAt(index)を使用します。

charは、c >= 'a' && c <= 'g'のような単純な比較を使用して指定された範囲内にあるかどうかを確認できます。

0

まず、変数「a」の名前を付けるべきではないと思います。

Aniways、私はこのように私の入力を検証します:

a.compareTo(maxValue) >= 0 && a.compareTo(minValue) <= 0 && a.length == 1 
1

は、このコードを試してみてください:

public static void main(String... params) { 
    Scanner s = new Scanner(System.in); 
    Character minValue = 'a'; 
    Character maxValue = 'g'; 
    while (true) { 
     System.out.print("enter a char between a-g: "); 
     Character input = s.nextLine().charAt(0); 
     if (input >= minValue && input <= maxValue) { 
      System.out.println("Ok"); 
     } else { 
      System.out.println("oops"); 
      System.exit(0); 
     } 
    } 
} 
0

以下のコードを試してください:

インポートjava.util.Scanner;

import java.util.Scanner;

パブリッククラスStringValidation { のpublic static無効メイン(文字列[] args){

Scanner input = new Scanner(System.in); 

    String a = null; 
    char minValue = 'a'; 
    char maxValue = 'g'; 
    boolean loop = true; 
    int i = 0; 

    while (loop) { 
     System.out.print("enter a char between a-g: "); 
     a = input.nextLine(); 
     if ((int) minValue <= (int) a.charAt(i)) { 
      if ((int) maxValue <= (int) a.charAt(i)) { 
       System.out.println("Oops! "); 
       System.out.print("enter a char between a-g: "); 
       i++; 
       input.nextLine(); 
      } else { 
       System.out.println("Accepted"); 
       break; 
      } 
     } 
    } 
    input.close(); 
} 

}

関連する問題