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的值
}

}
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com