主要问题在于如何判断数字、字母、字符及其个数:

1.灵活运用正则表达式;

2.使用Character方法,对字符串中的每个字符进行判断,并累计个数;

import java.util.*;
import java.util.regex.*;
//方法:
//1.灵活运用正则表达式;
//2.使用Character.isDigit()/isLetter()/isUpperCase()/isLowerCase()

public class Main{
    public static void main(String[] args){
        Scanner scan=new Scanner(System.in);
        String input = scan.nextLine();

        int grade=0;

        //密码长度
        if(input.length()<=4){
            grade+=5;
        }else if(input.length()<=7){
            grade+=10;
        }else{
            grade+=25;
        }

        //字母
        boolean hasLetter=true;
        boolean hasUpper=Pattern.compile("[A-Z]").matcher(input).find();
        boolean hasLower=Pattern.compile("[a-z]").matcher(input).find();
        boolean isAllUpper=hasUpper&&!hasLower;
        boolean isAllLower=!hasUpper&&hasLower;
        if(!hasUpper&&!hasLower){
            grade+=0;
            hasLetter=false;
        }else if(isAllUpper||isAllLower){
            grade+=10;
        }else{
            grade+=20;
        }

        //数字
        boolean hasDigit=true;
        String str1=input.replaceAll("[^0-9]","");//将数字外其他字符删去
        if(str1.length()==0){
            grade+=0;
            hasDigit=false;
        }else if(str1.length()==1){
            grade+=10;
        }else{
            grade+=20;
        }

        //符号
        boolean hasSymbol=true;
        String str2=input.replaceAll("[0-9a-zA-Z\\s]","");//将数字、字母、空格删去,仅剩余字符
        if(str2.length()==0){
            grade+=0;
            hasSymbol=false;
        }else if(str2.length()==1){
            grade+=10;
        }else {
            grade+=25;
        }

        //奖励
        if(hasLetter&&hasDigit&&!hasSymbol){
            grade+=2;
        }else if((isAllUpper||isAllLower)&&hasDigit&&hasSymbol){
            grade+=3;
        }else if((hasUpper&&hasLower)&&hasDigit&&hasSymbol){
            grade+=5;
        }

        //输出
        if(grade>=90){
            System.out.println("VERY_SECURE");
        }else if(grade >=80){
            System.out.println("SECURE");
        }else if(grade >=70){
            System.out.println("VERY_STRONG");
        }else if(grade >=60){
            System.out.println("STRONG");
        }else if(grade >=50){
            System.out.println("AVERAGE");
        } else if(grade >=25){
            System.out.println("WEAK");
        }else{
            System.out.println("VERY_WEAK");
        }
    }
}