JAVA为输入中的每个字符打印一个错误
我是一名Java程序员新手,我正在尝试制作一个非常基本的用户名/密码程序。用户名部分工作正常,但当我使用密码时,它会给我带来一些奇怪的问题。我发现,例如,当它检查一个大写字母时,如果它发现一个大写字母,它就一切正常,但如果它没有,它就会为密码中的每个字符打印错误消息。它通过数字检查和长度检查来实现这一点。如果你们中的任何人能简单地向我解释这一点,因为我还是java新手,那就太棒了。谢谢JAVA为输入中的每个字符打印一个错误,java,eclipse,if-statement,do-while,Java,Eclipse,If Statement,Do While,我是一名Java程序员新手,我正在尝试制作一个非常基本的用户名/密码程序。用户名部分工作正常,但当我使用密码时,它会给我带来一些奇怪的问题。我发现,例如,当它检查一个大写字母时,如果它发现一个大写字母,它就一切正常,但如果它没有,它就会为密码中的每个字符打印错误消息。它通过数字检查和长度检查来实现这一点。如果你们中的任何人能简单地向我解释这一点,因为我还是java新手,那就太棒了。谢谢 do { if (count3 >0) {
do
{
if (count3 >0)
{
System.err.println("- At least 1 Uppercase");
System.err.println("- At least 1 number");
System.err.println("- At least 7 characters long.");
}
regPassword = input.nextLine();
regPasswordLen = regPassword.length();
for(int count = 0; count < regPasswordLen; count++)
{
if(Character.isUpperCase(regPassword.charAt(count)))
regPasswordUppercaseCheck = true;
else
{
System.err.println("Your password did not contain an Uppercase letter");
regPasswordUppercaseCheck = false;
}
if(regPassword.contains("1") || regPassword.contains("2") ||
regPassword.contains("3") || regPassword.contains("4") ||
regPassword.contains("5") || regPassword.contains("6") ||
regPassword.contains("7") || regPassword.contains("8") ||
regPassword.contains("9") || regPassword.contains("0"))
regPasswordNumCheck = true;
else
{
System.err.println("Your password did not contain at least 1 number.");
regPasswordNumCheck = false;
}
if (regPasswordLen >=7)
regPasswordLengthCheck = true;
else
{
System.err.println("Your password did not meet the minimum length requirements.");
regPasswordLengthCheck = false;
}
}
count3++;
}
while(!regPasswordUppercaseCheck || !regPasswordNumCheck || !regPasswordLengthCheck);
System.out.println("test");
do
{
如果(计数3>0)
{
System.err.println(“-至少1个大写”);
System.err.println(“-至少1个数字”);
System.err.println(“-至少7个字符长”);
}
regPassword=input.nextLine();
regPasswordLen=regPassword.length();
for(int count=0;count=7)
regPasswordLengthCheck=true;
其他的
{
System.err.println(“您的密码不符合最小长度要求。”);
regPasswordLengthCheck=false;
}
}
count3++;
}
而(!regPasswordUppercaseCheck | | |!regPasswordNumCheck | | |!regPasswordLengthCheck);
系统输出打印(“测试”);
您可以在程序中更改一些内容
do
{
if (count3 >0)
{
System.err.println("- At least 1 Uppercase");
System.err.println("- At least 1 number");
System.err.println("- At least 7 characters long, but no more than 15 characters.");
}
regPassword = input.nextLine();
regPasswordLen = regPassword.length();
// this check only needs to happen once per password, no need to check it in the for loop. You also specified that the length should not exceed 15 characters, so I threw that in as well
if (regPasswordLen < 7 || regPasswordLen > 15)
System.err.println("Your password did not meet the length requirements.");
// by default, we set these flags to false, and only make them true if the requirements are satisfied
regPasswordUppercaseCheck = false;
regPasswordNumCheck = false;
for(int count = 0; count < regPasswordLen; count++)
{
// store the value of regPassword.charAt(count) in a local variable for reusability
char current = regPassword.charAt(count);
if(Character.isUpperCase(current))
regPasswordUppercaseCheck = true;
// checks if the character is a digit or not
if(current >= '0' && current <= '9')
regPasswordNumCheck = true;
}
if (!regPasswordNumCheck)
System.err.println("Your password did not contain at least 1 number.");
if (!regPasswordUppercaseCheck)
System.err.println("Your password did not contain an Uppercase letter");
count3++;
}
while(!regPasswordUppercaseCheck || !regPasswordNumCheck || !regPasswordLengthCheck);
do
{
如果(计数3>0)
{
System.err.println(“-至少1个大写”);
System.err.println(“-至少1个数字”);
System.err.println(“-至少7个字符长,但不超过15个字符”);
}
regPassword=input.nextLine();
regPasswordLen=regPassword.length();
//这个检查只需要对每个密码执行一次,不需要在for循环中进行检查。您还指定长度不应超过15个字符,所以我也加入了这个检查
if(regPasswordLen<7 | | regPasswordLen>15)
System.err.println(“您的密码不符合长度要求。”);
//默认情况下,我们将这些标志设置为false,并且只有在满足需求时才将其设置为true
regPasswordUppercaseCheck=false;
regPasswordNumCheck=false;
for(int count=0;count 如果(current>='0'&¤t您的大写检查没有正确完成,因为循环
for(int count=0;count 0){
System.err.println(“-至少1个大写”);
System.err.println(“-至少1个数字”);
System.err
.println(“-至少7个字符长,但不超过15个字符”);
}
regPassword=input.nextLine();
regPasswordLen=regPassword.length();
for(int count=0;count=7)
regPasswordLengthCheck=true;
否则{
System.err
.println(“您的密码不符合最小长度要求”);
regPasswordLengthCheck=false;
}
count3++;
}而(!regPasswordUppercaseCheck | |!regPasswordNumCheck
||!regPasswordLengthCheck);
系统输出打印(“测试”);
<
for (int count = 0; count < regPasswordLen; count++) {
if (Character.isUpperCase(regPassword.charAt(count)))
{regPasswordUppercaseCheck = true;break;}
}
do {
if (count3 > 0) {
System.err.println("- At least 1 Uppercase");
System.err.println("- At least 1 number");
System.err
.println("- At least 7 characters long, but no more than 15 characters.");
}
regPassword = input.nextLine();
regPasswordLen = regPassword.length();
for (int count = 0; count < regPasswordLen; count++) {
if (Character.isUpperCase(regPassword.charAt(count)))
{regPasswordUppercaseCheck = true;break;}
}
if(regPasswordUppercaseCheck==false){
System.err
.println("Your password did not contain an Uppercase letter");
regPasswordUppercaseCheck = false;
}
regPasswordNumCheck = regPassword.contains("1") || regPassword.contains("2")
|| regPassword.contains("3")
|| regPassword.contains("4")
|| regPassword.contains("5")
|| regPassword.contains("6")
|| regPassword.contains("7")
|| regPassword.contains("8")
|| regPassword.contains("9")
|| regPassword.contains("0");
if(regPasswordNumCheck==false) {
System.err
.println("Your password did not contain at least 1 number.");
regPasswordNumCheck = false;
}
if (regPasswordLen >= 7)
regPasswordLengthCheck = true;
else {
System.err
.println("Your password did not meet the minimum length requirements.");
regPasswordLengthCheck = false;
}
count3++;
} while (!regPasswordUppercaseCheck || !regPasswordNumCheck
|| !regPasswordLengthCheck);
System.out.println("test");