6.18(パスワードの検出)いくつかのサイトのパスワードは、いくつかのルールがあります。文字列が有効なパスワードであるかどうかを検出するための方法を記述します。
次のようにパスワードルールがあると仮定すると:
•パスワードは8文字以上でなければなりません。
•パスワードには文字と数字のみを含めることができます。
•パスワードには、少なくとも2つの数値を含んでいなければなりません。
彼らは規則を満たしていれば、有効なパスワードが表示され、パスワードの入力を促し、プログラムを書く、そうでない場合は無効なパスワード。
1 / ** ファイル名:passwdRule.java 2 機能:検出パスワードは、パスワード・ルールを入力したかどうかを 3 時間作成:2019年10月17日に 4。 郵便:[email protected] 5。 * / 6。 7。 インポートjava.util.Scanner; 8。 パブリック クラスpasswdRule { 9。 パブリック 静的 ボイドメイン(文字列[]引数){ 10 11。 スキャナ入力= 新しい新しいスキャナ(System.in); 12は System.out.print( "パスワードを入力してください"という) 13である 文字列のpasswd = 入力。次の(); 14 15 // チェックパスワード 16を IF (passwdDigit(passwdファイル)){ 17 IF((getPasswdNumber(passwdファイル)> = 2)&&((getPasswdNumber(passwdファイル)+ getPasswdDigitNumber(passwdファイル))== passwd.length())){ 18れます System.out.println( "介して有効なパスワード" ); 19 } そう 20は するSystem.out.println( "無効なパスワードが失敗" ); 21である } 他{ 22である ( "無効なパスワードが失敗"のSystem.out.println )。 23 } 24 } 25 26である ** /ビット長のpasswdの数が行のルールに一致するかどうかを検出する真に戻る* / 27 パブリック 静的 ブール{passwdDigit(文字列のpasswd) 28 //は、最大文字数制限と下限キャラクタ・セット 29 ファイナル INT MAX = 1024 ; 30 ファイナル INT。MIN = 8 。 31は、 INT passwdLength = passwd.length(); 32 IF((passwdLength> = MIN)&&(passwdLength < MAX)) 33で 返す trueに、 34は、 戻り falseに; 35 } 36 37 / ** passwdに数値や文字の数を返します、kは数0を表し、1文字を表します* / 38 パブリック 静的 INT getPasswdDigitNumber(文字列のpasswd){ 39 // 字母个数 40 INT digitNumber = 0 。 41 チャーdigitUpper。 42 のために(int型 i = 0; iが++; iがpasswd.length()< ){ 43 digitUpper = Character.toUpperCase(passwd.charAt(I))を、 44 であれば(digitUpper> 'A' && digitUpper < 'Z' ) 45 digitNumber ++ 。 46 } 47 リターンdigitNumber。 48 } 49 50 / ** 返回のpasswd的数字个数* / 51 パブリック 静的 INT getPasswdNumber(文字列のpasswd){ 52 のint番号= 0 。 53 INT arrayNumber。 54 55 のために(int型、iはpasswd.lengthを()<; I = 0 iは++ ){ 56 arrayNumber = passwd.charAt(I)。 57 であれば((INT)arrayNumber> 47 &&(INT)arrayNumber <58 ) 58 数++ 。 59 } 60 リターン数; 61 } 62 }
このコードは書き込みを削除し、一晩書かれ、そして最終的のcharAtを発見された(I)これが鍵です!