【发布时间】:2016-05-26 07:22:39
【问题描述】:
我希望程序做两件事:
- 检查字符串(密码输入)是否同时包含字母和数字。
- 检查密码是否至少包含 8 个字符。
这是我的代码:
import java.util.*;
class howstrong
{
public static void main(String ar[])
{
String password;
int i;
int c=0;
Scanner in = new Scanner(System.in);
System.out.println("ENTER PASSWORD");
password = in.next();
if (password.length() <= 8)
{
for (i = 0; i <= password.length(); i++)
{
char x = password.charAt(i);
if (Character.isLetter(x))
{
if (Character.isDigit(x))
c = 1;
}
}
if (c == 1)
System.out.println("STRONG");
else
System.out.println("NOT STRONG");
}
else
System.out.println("HAVE AT LEAST 8 CHARACTERS");
}
}
【问题讨论】:
-
格式化!请看代码!
-
您有具体的问题或错误吗?
-
@AndrewMortimer 第一个问题是当我输入超过 8 个字符的密码时,它给了我:字符串索引超出范围错误并且通常没有 8 个字符的限制语句,它总是给我不强的输出。
-
将循环条件
i = 0; i <= password.length(); i++替换为:i = 0; i < password.length(); i++。对于最后一次迭代,您会得到一个 IndexOutofBoundException。 Password.charAt(password.length()) 不是有效索引。 -
@DavidSN 谢谢。现在检查 String 是否有 8 个字符正在工作。仍然坚持第一个条件(见问题)。