string.charAt(index)が正規表現を使用せずにJavaでAz文字または数字であるかどうかを認識するための最良および/または最も簡単な方法は何ですか?ありがとう。
9 に答える
答えが示すように(注意深く調べれば!)、あなたの質問は曖昧です。「Az文字」または数字とはどういう意味ですか?
文字がUnicodeの文字か数字かを知りたい場合は、
Character.isLetter
andCharacter.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つのブロックにあることに注意してください。
バージョン 1.0.2 以降、Java Character クラスにはisLetterOrDigitメソッドがあります。
私は最善のことを知りませんが、これは私にはかなり簡単に思えます:
Character.isDigit(str.charAt(index))
Character.isLetter(str.charAt(index))
以下のコードを使用してください
Character.isLetterOrDigit(string.charAt(index))
その値を比較します。'a'と'z'、'A'と'Z'、'0'と'9'の値の間にある必要があります