179

string.charAt(index)が正規表現を使用せずにJavaでAz文字または数字であるかどうかを認識するための最良および/または最も簡単な方法は何ですか?ありがとう。

4

9 に答える 9

329

Character.isDigit(string.charAt(index))( JavaDoc ) は数字の場合に true を返します
Character.isLetter(string.charAt(index))( JavaDoc ) は文字の場合に true を返します

于 2010-10-28T23:06:22.020 に答える
29

答えが示すように(注意深く調べれば!)、あなたの質問は曖昧です。「Az文字」または数字とはどういう意味ですか?

  • 文字がUnicodeの文字か数字かを知りたい場合は、 Character.isLetterandCharacter.isDigitメソッドを使用します。

  • 文字がASCII文字または数字であるかどうかを知りたい場合は、文字範囲「a」から「z」、「A」から「Z」、および「0」と比較してテストするのが最善の方法です。 「9」。

すべてのASCII文字/数字はUnicode文字/数字であることに注意してください...しかし、ASCIIではない多くのUnicode文字/数字文字があります。たとえば、アクセント付きの文字、キリル文字、サンスクリット語、...


一般的な解決策はこれを行うことです:

Character.UnicodeBlock block = Character.UnicodeBlock.of(someCodePoint);

次に、ブロックが関心のあるブロックの1つであるかどうかをテストします。場合によっては、複数のブロックをテストする必要があります。たとえば、キリル文字には(少なくとも)4つのコードブロックがあり、ラテン文字には7つのコードブロックがあります。このCharacter.UnicodeBlockクラスは、既知のブロックの静的定数を定義します。javadocsを参照してください。

すべてのコードポイントは最大で1つのブロックにあることに注意してください。

于 2010-10-29T00:06:03.253 に答える
29
于 2015-08-27T06:23:38.053 に答える
15

バージョン 1.0.2 以降、Java Character クラスにはisLetterOrDigitメソッドがあります。

于 2015-02-12T09:23:16.513 に答える
10

私は最善のことを知りませんが、これは私にはかなり簡単に思えます:

Character.isDigit(str.charAt(index))
Character.isLetter(str.charAt(index))
于 2010-10-28T23:07:23.427 に答える
6

以下のコードを使用してください

Character.isLetterOrDigit(string.charAt(index))

于 2018-08-27T22:44:00.803 に答える
5

その値を比較します。'a'と'z'、'A'と'Z'、'0'と'9'の値の間にある必要があります

于 2010-10-28T23:05:56.477 に答える