2011-09-17 11 views
0

ユーザーが文字列を入力するはずのプログラムを作成する必要があります。最初と2番目の文字は大文字でなければならず、残りは数字でなければなりません。ユーザーがこれを正しく入力しなかった場合、プログラムは入力エラーを通知するメッセージを生成することになっています。アサートユーザー入力は大文字です

私はこれを行うには、ユーザー入力のすべてのシングルサインをスキャンして間違いを探すループを作成することができます。

だから私は定義されていると言う:

文字記号を、

そして、私はのcharAt(ループ数)

でループを使用するには、私が書くよりも簡単な方法で大文字のスキャンを行うことができ、言う:すべての文字について

if (sign != 'A' || sign != 'B' || sign !='C' || sign != 'D' . . . .) 

?これは、プログラムを書くにはちょっと面倒な方法です。だから、入力が大文字であると主張するためのショートカット/メソッドを知っている人は、私は大いに感謝するだろう!このような

+1

あなたが使用している言語によって... – Juanma

+0

ああ。それを言いたくて申し訳ありません。私はJavaを使用しています。 – Kristian

+0

Javaタグが追加されました。 :) – Jeff

答えて

1

何か:記号は大文字である場合

if(sign >= 'A' && sign <= 'Z') 

これは本当です。

+0

ありがとうございました。私はこれを試してみましょう。 – Kristian

+1

+1 - 純粋な演算子:) – Jeff

0

それは機能しますか?

注:これは、あなたが使用している言語を指定していないとして、デルファイである;)

ここでテストされていない(Javaの例です):

char Char1 = yourinput.charAt(0); 
    char Char2 = yourinput.charAt(1); 
    // Those were the first to characters 
    // Now check if they are uppercase 
    if(Char1==Character.toUpperCase(Char1) && Char2==Character.toUpperCase(Char2)) 
    { 
    // Do something if both are uppercase 
    } 
+0

ありがとうございます。私もこれを試してみましょう! – Kristian

+0

私はPatrik&Iの提案がうまくいくと信じています。 Patrikの答えは演算子のみを使用しているので、私は彼の答えは最高だと思います:) – Jeff

1

あなたは全体的にregular expressionを使用することができます!文字ごとにテストする代わりに文字列を使用します。この正規表現は何

if (!userString.matches("^[A-Z]{2}\d+$") { 
    // Generate a warning... 
} 

は、文字列の末尾に少なくとも一桁に続いて2つの大文字であると、文字列の先頭を強制です。

提案したようにループコードを実行する場合は、Character.isUppercase(char c)method in the Java librariesを使用して、文字が大文字であるかどうかをテストします。同様に、Character.isDigit(char c)を使用して番号をテストすることもできます。

2
ch=(char) inputstream.read(); 
if(Character.isUpperCase(ch)) { 
    /* DO SOMETHING */ 
} 
else { 
    /* DO SOMETHING ELSE*/ 
} 
関連する問題