JAVA初学:关于密码验证的问题?
发布网友
发布时间:2022-04-25 17:07
我来回答
共3个回答
热心网友
时间:2023-10-21 19:14
import java.awt.*;
import java.awt.event.*;
public class TestPassword {
public static void main(String[]args) {
MyTestFrame mf = new MyTestFrame("密码输入");
}
}
class MyTestFrame extends Frame {
Button b = new Button("确认");
TextField tf = new TextField(15);
public MyTestFrame(String str){
super(str);
tf.setEchoChar('*');
Panel p = new Panel();
p.setBackground(Color.BLACK);
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String str = tf.getText();
// System.out.println(str);
if(str.length()<8) {
System.out.println("输入不能少于八位");
tf.setText("");
}
else {
if(str.matches("\\d*")) {
System.out.println("密码强度低 ");
}
if(str.matches("[a-z0-9]*")){
System.out.println("密码强度中 ");
}
if(str.matches("[a-zA-Z0-9]*")) {
System.out.println("密码强度高");
}
}
}
});
this.setLayout(new BorderLayout());
p.add(tf);
this.add(b,BorderLayout.EAST);
this.add(p,BorderLayout.CENTER);
pack();
this.setVisible(true);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
可费劲了 把课本又翻了一遍,正则表达式又复习了一下,gui也用上了
热心网友
时间:2023-10-21 19:15
你要的是控制台的还是用户图形的啊?
有些用正则表达可以行的。
热心网友
时间:2023-10-21 19:15
import java.util.Scanner;
impirt java.lang.Character;
public class StrIn
{
public static void main(String[] args)
{
char[] chs = new char[100];
String str;
String outstr="密码强度为低";
Scanner sc = new Scanner(System.in);
System.out.print("请输入字符串:");
str = sc.nextLine(); //读入字符串
System.out.println();
if (str.length()<8) //如果长度小于8
{
outstr="密码低于8位";
}
else {
outstr=judgment(str); //判断密码强度
}
System.out.print(outstr); //输出结果
}
public String judgment(String b){ //定义函数
String str2=b;
String outstr="";
Boolean a=false;
Boolean b=false;
Boolean c=false;
for (int i = 0; i < str2.length()-1; i ++)
{
if (isLowerCase(str2.charAt(i))){
a=true;
}
else if (isUpperCase(str2.charAt(i));){
b=true;
}
else if (a&b){
outstr =" 密码强度为中"
}
else if (isDigit(str2.charAt(i))){
c=true
}
else if (a&b&c){ //当有数字有大小写字母时强度为“高“并退出循环
outstr="密码强度为高";
break;
}
}
return outstr; //返回outstr的值
}
}