私はEclipseデバッガーを介していくつかのコードを実行していますが、いつ(は文字列配列です)と同等でa[1].matches("[a-zA-Z]")
はありません。true
a[1] = "ABCD"
a
私はjavadocを読みましたが、有効な正規表現である必要がありますmatches
..[a-zA-Z]
私がどこで間違っているか知っている人はいますか?
次の式を使用してみてください: [a-zA-Z]*
(0 個以上の文字に一致します)。
少なくとも 1 文字が必要な場合は、次を使用します。[a-zA-Z]+
使用している表現は、量化されていないため、単一の英字のみに一致します。
試してみてくださいa[1].matches("[a-zA-Z]+")
。1文字だけではなく、「1文字以上」が一致する必要があると書かれています。
'+' の代わりに '*' は「0 個以上の文字」に一致するため、空の文字列に一致することに注意してください (おそらく、必要なものとは異なります)。
そうあるべきだと思うa[1].matches("[a-zA-Z]*")
[a-zA-Z]
一文字しか受け付けません。おそらく必要[a-zA-Z]*
です。
文字列と一致しない理由は、RegEx 式が単一の文字と一致しようとしているためです。これを試して:
a[1].matches("[a-zA-Z]*")
この式は、文字列にすべてのアルファベットが含まれているかどうかを確認するために機能するはずです。
a[1].matches("^[a-zA-Z]*$")