gpt4 book ai didi

java - 密码与/特定要求程序

转载 作者:行者123 更新时间:2023-11-30 08:19:29 25 4
gpt4 key购买 nike

我目前正在为我的 Java 编程课做作业。

书中的问题要求用户创建一个程序,该程序使用 JOptionPane 框向用户询问密码。密码必须介于 6 到 10 个字符之间,并且至少包含一位数字和一个字母。满足此要求后,要求用户验证其密码。如果他们的第二个输入与第一个不匹配,请再次询问原始问题。一旦两个输入匹配,显示一条消息说“成功!”。

我已经到了检查字符数的地步,但我不能为我的生活弄清楚如何也检查数字和字母。我试过嵌套的 for 循环来搜索数字和字母,但我想不出一种方法让它在没有数字或字母时绕过长度要求。这是我当前的代码。

import javax.swing.JOptionPane;
class Password{
public static void main(String[] args){

String input1 = "";
String input2 = "";
int inputLength;

do{
do{

input1 = JOptionPane.showInputDialog(null, "Enter your password\nIt must be 6 to 10 characters and\nhave at least one digit and one letter");

inputLength = input1.length();

}while(inputLength < 6 || inputLength > 10);

input2 = JOptionPane.showInputDialog(null, "Verify Password");

}while(!(input1.equals(input2)));

JOptionPane.showMessageDialog(null, "Success!");

}
}

最佳答案

你可以处理正则表达式。

  • (?=.*\d)表示单词中的最后一位数
  • (?=.*[a-zA-Z])表示至少一个字母
  • {6,10} 表示 6 到 10 个字符

所以正确的正则表达式是((?=.\d)(?=.[a-zA-Z]).{6,10})

现在看看 String 的 `.matches(String regex) 方法 :)

如果你不能使用正则表达式:

  • 获取 CharArray ( input1.toCharArray() ) 并迭代。
  • 对于每个字符,检查它是数字还是字符
  • 保留 2 个 boolean 值(例如 num 和 alpha),当你看到一个字符的数字时将它们设置为 true

然后,看看你的标志,然后测试这个

num && alpha && inputLenght > 6 && inputLenght < 10

编辑:

您可以使用 Character.isLetter()Character.isDigit() ,我想你现在有足够的信息了!

关于java - 密码与/特定要求程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26812602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com