Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要帮助修复无限循环吗_Java - Fatal编程技术网

Java 需要帮助修复无限循环吗

Java 需要帮助修复无限循环吗,java,Java,所以我正在努力解决这个问题 您将检查列出的所有要求以获得有效密码 您还必须包括一个自动测试过程。程序应从文本文件中读取一系列密码。该文件应包含无效密码的版本,该版本将触发每个验证检查。该文件还应包含将通过所有验证检查的有效密码。包含无效和有效密码的文本文件应包含在项目文件夹中,以便在运行程序时,可以找到该文件并执行检查 重置密码的软件通常要求用户输入两次密码,检查以确保两次输入的方式相同。用Java编写一个方法,验证输入的两个密码是否正确。您的项目应该包含一个方法,该方法接收两个版本的密码,然后

所以我正在努力解决这个问题

您将检查列出的所有要求以获得有效密码

您还必须包括一个自动测试过程。程序应从文本文件中读取一系列密码。该文件应包含无效密码的版本,该版本将触发每个验证检查。该文件还应包含将通过所有验证检查的有效密码。包含无效和有效密码的文本文件应包含在项目文件夹中,以便在运行程序时,可以找到该文件并执行检查

重置密码的软件通常要求用户输入两次密码,检查以确保两次输入的方式相同。用Java编写一个方法,验证输入的两个密码是否正确。您的项目应该包含一个方法,该方法接收两个版本的密码,然后打印到一个报告中,说明两个条目不相同或两个版本相同

程序应将测试结果打印到屏幕和文本文件中

要遵守这些规则,需要使用正确的密码:

密码长度必须至少为8个字符

密码必须至少包含以下内容:

  • 一个数字字符[0-9]

  • 一个大写字母字母

密码不得:

  • 包含空格

  • 以感叹号[!]或问号[?]开头

您的程序必须列出密码具有的每种类型的密码冲突测试文件和屏幕报告

额外学分要求

一个字母字符[a-z a-z]; 一个非字母或数字字符,例如但不限于以下内容:
! @ $ % ^ & * ( ) - _ = + [ ] ; : ' “,<.>/

以上是非字母或数字字符的定义。该要求适用于所有非字母或数字字符

密码不能包含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.");
}
你的程序在哪里