Java 需要帮助修复无限循环吗
所以我正在努力解决这个问题 您将检查列出的所有要求以获得有效密码 您还必须包括一个自动测试过程。程序应从文本文件中读取一系列密码。该文件应包含无效密码的版本,该版本将触发每个验证检查。该文件还应包含将通过所有验证检查的有效密码。包含无效和有效密码的文本文件应包含在项目文件夹中,以便在运行程序时,可以找到该文件并执行检查 重置密码的软件通常要求用户输入两次密码,检查以确保两次输入的方式相同。用Java编写一个方法,验证输入的两个密码是否正确。您的项目应该包含一个方法,该方法接收两个版本的密码,然后打印到一个报告中,说明两个条目不相同或两个版本相同 程序应将测试结果打印到屏幕和文本文件中 要遵守这些规则,需要使用正确的密码: 密码长度必须至少为8个字符 密码必须至少包含以下内容:Java 需要帮助修复无限循环吗,java,Java,所以我正在努力解决这个问题 您将检查列出的所有要求以获得有效密码 您还必须包括一个自动测试过程。程序应从文本文件中读取一系列密码。该文件应包含无效密码的版本,该版本将触发每个验证检查。该文件还应包含将通过所有验证检查的有效密码。包含无效和有效密码的文本文件应包含在项目文件夹中,以便在运行程序时,可以找到该文件并执行检查 重置密码的软件通常要求用户输入两次密码,检查以确保两次输入的方式相同。用Java编写一个方法,验证输入的两个密码是否正确。您的项目应该包含一个方法,该方法接收两个版本的密码,然后
- 一个数字字符[0-9]
- 一个大写字母字母
- 包含空格
- 以感叹号[!]或问号[?]开头
! @ $ % ^ & * ( ) - _ = + [ ] ; : ' “,<.>/ 以上是非字母或数字字符的定义。该要求适用于所有非字母或数字字符 密码不能包含3个或更多相同字符的重复字符串,例如“1111”或“aaa” 您的任务是创建一个项目,以验证预期正确的密码是否满足这些要求,以及用户是否在两次中输入了正确的密码 您的程序必须列出每种类型的密码冲突,密码会显示在屏幕和文本文件中> 这是我目前的代码:
package com.clkidd;
导入java.util.*;
导入java.io.*;
公共班机{
公共静态void main(字符串[]args)引发FileNotFoundException{
//创建一个文件实例
java.io.File文件=新的java.io.File(“password.txt”);
//为文件创建扫描程序
扫描仪输入=新扫描仪(文件);
//从文件中读取数据
while(input.hasNext())
系统输出(
“1.密码必须至少包含八个字符。\n”+
“2.密码必须至少包含一个大写字母\n”+
“3.密码必须包含一个数字\n”+
“4.密码不能包含空格\n”+
“5.密码开头不能包含!或”\n”+
“6.密码必须至少包含一个特殊字符\n”+
“输入密码:”;
//声明变量
字符串inputPassword;//密码的变量
字符串确认密码;
//询问密码
系统输出打印(“密码:”);
inputPassword=input.next();
if(密码检查(输入密码))
{
System.out.print(“请确认您的密码:”);
confirmPassword=input.next();
if(inputPassword.matches(confirmPassword)){
System.out.println(“成功创建密码”);
}否则{
System.out.println(“密码不匹配”);
}
}
System.out.println(“密码不匹配”);
}
公共静态布尔密码检查(字符串密码){
布尔有效=真;
if(password.length()<8){
System.out.println(“密码不是八个字符长。”);
有效=错误;
}
字符串大写=“(.[A-Z].”;
如果(!password.matches)(大写)){
System.out.println(“密码必须至少包含一个大写字母。”);
有效=错误;
}
字符串编号=“(.[0-9].”;
如果(!password.matches(数字)){
System.out.println(“密码必须至少包含一个数字”);
有效=错误;
}
字符串specialChars=“(.[!\@$%^&*()-\=+[];:”\,<.>/?]);
如果(!password.matches(specialChars)){
System.out.println(“密码必须至少包含一个特殊字符。”);
有效=错误;
}
字符串空格=“(.[].*)”;
if(password.matches(空格)){
System.out.println(“密码不能包含空格。”);
有效=错误;
}
if(password.startsWith(“?”){
System.out.println(“密码不能以“?”开头”);
有效=错误;
}
if(password.startsWith(“!”){
System.out.println(“密码不能以“!”开头”);
有效=错误;
}
如果(有效){
System.out.println(“密码有效”);
}
返回有效;
}
}
它运行一个无限循环,不会停止。我不知道如何修复。您的
while
循环中缺少{}
while (input.hasNext())
关于这里的代码,它会在中继续运行第一行代码,而
当while
语句有多行代码时,必须使用{}
while (input.hasNext()) {
System.out.println(
"1. A password must have at least eight characters.\n" +
"2. Password must contain at least one capital letter\n" +
"3. Password must contain one number \n" +
"4. Password cannot contain a space \n" +
"5. Password must not contain ! or ? at the beginning \n " +
"6. Password must contain at least one special character \n" +
"Input a password: ");
//declare variables
String inputPassword; // variable for password
String confirmPassword;
// ask for password
System.out.print("Password : ");
inputPassword = input.next();
if (passCheck(inputPassword)) {
System.out.print("Please confirm your password : ");
confirmPassword = input.next();
if (inputPassword.matches(confirmPassword)) {
System.out.println("Password successfully created.");
} else {
System.out.println("Passwords do not match.");
}
}
System.out.println("Passwords do not match.");
}
你的程序在哪里