Stringに記載されている数字の数、アルファベットの数、記号の数を知る方法

[戻る]
なおぞう 2016/04/22(金) 21:06:31
よろしくお願いします。
以下の環境で開発中です
OS Win7 x86 
tomcat8
Java java version "1.8.0_77"

String pass = "Agd42/8-gaddS";

となっている場合に、
大文字アルファベット:2
小文字アルファベット:6
数字:3
記号:2

という結果を知りたいのですが、何か良い関数は無いでしょうか?

しま 2016/04/23(土) 08:48:17
文字の場合は isDigit(), isAlpha(), isUpper(), isLower() などで判別可能です。

文字列から文字種(数字、大文字、小文字)を抜き出すのなら正規表現を使うのが
いいでしょう。ただし、java だけではありませんが文字、文字列で扱うのは1バイトで
表現できるものと決めてかかってはいけません。取扱う文字コードがユニコードの場合 1
6ビットか 32ビットかが最小単位です。(UTF-8 の場合は1バイトか3バイトかが一文字
の単位です)

数字は  :\d か [0-9]
小文字は:[a-z]
大文字は:[A-Z]

で指定したパターンに合うものを抜き出した部分文字列の文字数を求めればいいでしょう
。

以下のサイトが役に立てばいいのですが
http://qiita.com/ymsr5612/items/7c8811b5cf37d700adc4
http://java-reference.sakuraweb.com/java_string_regex.html

なおぞう 2016/04/25(月) 12:00:40
[[解決]]
>しま様

URLを教えていただき、ありがとうございます。
一文字ずつ確認して、種類ごとにカウントする方法しかないですね。
文字のバイト数にはどの言語でも泣かされます…。

古いスレッドには追加発言できません。