Java授業後の練習問題——パスワードの検証

2018 ワード

ブログサイトにはパスワードを検証するルールが設定されており、文字列が合法的なパスワードであるかどうかを検証する方法が書かれています.
ルールは次のとおりです.
1)パスワードの長さは8-16の間である
2)パスワードにはアルファベットと数字しか含まれません
3)パスワードには少なくとも2つの数字が必要
ユーザーが入力したパスワードがルールに合致する場合、valid passwordが表示されます.そうしないと、Invalid passwordが表示されます.パスワードがルールに合致するとvalid passwordが表示されます.そうしないと、Invalid passwordが表示されます.
メソッド1:(一般的なアプローチではCharacterクラスのメソッドを使用)
class Test{
	public static int numberCount(String s)
	{//            
	    int count=0;  
	    for(int i=0;i=2 && s.length()>=8 && s.length()<=16 && testWord(s))
			System.out.println("valid password");
		else
			System.out.println("Invalid password");
	}
}

public class TestPassword {   
    public static void main(String[] args) {  
        Scanner input = new Scanner(System.in);  
        System.out.println("     :");  
        String password = input.nextLine();  
        Test t=new Test();
        t.testPassword(password);  
    }    
}

方法2:(正規表現を使用)
正規表現を使用してこの問題を作成するとimport java.util.*;Patternクラスはまだ含まれていません.import java.util.regex.Patternが必要です.またはimport java.util.regex.*;その後、インターネットで検索すると、*は現在のディレクトリのみを含み、サブディレクトリの下のclassファイルは含まれていないことがわかりました.
import java.util.regex.Pattern;
import java.util.Scanner;
public class Password{
	public static void main(String[] args) {
		String str_1="[a-zA-Z0-9]{8,16}";  //           ,      8-16   
		String str_2=".*\\d.*\\d.*";  //         2    
		Scanner input=new Scanner(System.in);
		System.out.println("     :");
		String password=input.nextLine();
		if(Pattern.matches(str_1,password)&&Pattern.matches(str_2,password))
		{
			System.out.println("valid password");
		}
		else
		{
			System.out.println("Invalid password");
		}
	}
}