1

私はこれを達成しようとしています。私は9文字の文字列を持っています(常に同じです)。しかし、最初と最後の文字は常にアルファベットであることも知っています。真ん中の残りは数字です。それを確認する方法。これまでのところ、このロジックを取得しました。構文が問題です

string samplestring;
samplestring = a1234567B
If(samplestring.length() == 9 && samplestring.substring(0,1).uppercase && samplestring.substring(8,9) && samplestring.THE REST OF THE CHAR IN THE MIDDLE ARE DIGITS)

{
 println("yes this is correct");
}

else
{
println("retype");
}

構文を知りたいだけの簡単な英語は気にしないでください。ロジックはそこにあります..

また、小文字を大文字に変換する方法を教えてください。

4

3 に答える 3

6

正規表現が適しています。

String s = new String("A2345678Z");
if (s.matches("[A-Z][0-9]{7}[A-Z]")))
{
}

正規表現の説明:

  • [A-Z]任意の大文字を意味します
  • [0-9]{7}は7桁を意味します
于 2012-08-21T09:11:03.053 に答える
5
Pattern p = Pattern.compile("^[A-Za-z]\\d+[A-Za-z]$");
Matcher m = p.match("A1234567B");
if (m.matches()) {
  //
}

編集:

常に 7 桁の場合は\\d+\\d{7}

于 2012-08-21T09:10:55.487 に答える