今まで正規表現しか使ったことがないのですが、ASCIIコードを使ってパスワードの確認をしたいです。自分でも調べてみたのですが、ほとんどが正規表現でASCIIコードを使っている参考になるようなものが見つかりませんでした。
そのパスワードの中に数字とアルファベット大文字が含まれているかを調べたいです。
どちらかひとつだけの確認ならできたのですが、複数のことが確認できません。
どちらのifも同じ文字iを使っていて一つの文字が数字でありアルファベットでもあるはずがないのでfalseになるのかなと思っているのですが、passwordの中に数字もあり、アルファベット大文字も含んでいるかと調べるにはどうしたら良いのでしょうか。
java
1public boolean passwordCheck(){ 2//例 3String password = "a1aa11A"; 4 for(int i=0; i<password.length(); i++){ 5 if(password.charAt(i)>=48 && password..charAt(i)<=57){ 6 if(password.charAt(i)>=65&& password..charAt(i)<=90){ 7 return true; 8 }else{ 9 return false; 10 } 11 }else{ 12 return false; 13 } 14 } 15}
>orループとcharAt(i)を使えば良いかなと考えているのですが
まず書いてみては。
エラーが出るだけで復旧不可能な問題が起きることってないですよ。
そうですよね。
色々試していたらできました、、。
数字だけの確認の場合、
if(password.charAt(i)>=48 && password.charAt(i)<=57) {
return true;
}else{
return false;
}
でうまくいったのですが、
数字とアルファベット大文字を含むか知りたい時、
if(password.charAt(i)>=48 && password..charAt(i)<=57) {
if(password.charAt(i)>=65&& password..charAt(i)<=90){
return true;
}else{
return false;
}
}else{
return false;
}
にすると、うまくいきません。
追加回答よろしくお願いします。
質問は編集できますので、状況を追記してください。
「うまくいかない」ではなく、起きている現象も追記してくださいね。
追記しました。
パスワード文字列の検証と言うと、「それらの文字が含まれているか」と言うよりは、「それらの文字”以外”が含まれているか」または「それらの文字”のみ”で構成されているか」検証になるかと思いますがどうでしょうか。
まぁ、あと、ご提示のコードでは"alaaa11A"のすべての文字をチェックするまでもなく、最初の1文字のみでreturnしてしまうのではないかと。
> そのパスワードの中に数字とアルファベット大文字が含まれているかを調べたいです。
含まれてさえいれば良ければ含まれていると判断した時点でreturnしてしまって良いのですけど、文字列中の文字全てがそうか、そうでないかを判定したいのであれば、プログラム全体を見直す必要があります。
回答ありがとうございます。全体を変えることにしました。
回答2件
あなたの回答
tips
プレビュー