Java 验证密码
我想检查密码是否至少包含8个字符,并且只包含数字和字母。 这里的问题是,即使我输入了一个有效的密码,它始终显示“无效”。这是密码。谢谢Java 验证密码,java,string,validation,boolean,Java,String,Validation,Boolean,我想检查密码是否至少包含8个字符,并且只包含数字和字母。 这里的问题是,即使我输入了一个有效的密码,它始终显示“无效”。这是密码。谢谢 public static void main(String[] args) { String pw; Scanner sc = new Scanner(System.in); System.out.print("Enter a password: "); pw = sc.next(); if(isValid(pw)=
public static void main(String[] args)
{
String pw;
Scanner sc = new Scanner(System.in);
System.out.print("Enter a password: ");
pw = sc.next();
if(isValid(pw)==true)
{
System.out.println("Valid Password");
}
else
{
System.out.println("Invalid Password");
}
}
public static boolean isValid(String pw)
{
if(pw.length()<8)
{
return false;
}
else
{
for(int x=0; x<pw.length(); x++)
{
return Character.isLetterOrDigit(pw.charAt(x));
}
}
return true;
}
publicstaticvoidmain(字符串[]args)
{
串pw;
扫描仪sc=新的扫描仪(System.in);
System.out.print(“输入密码:”);
pw=sc.next();
如果(isValid(pw)=真)
{
System.out.println(“有效密码”);
}
其他的
{
System.out.println(“无效密码”);
}
}
公共静态布尔值isValid(字符串pw)
{
如果(pw.length()您在循环的第一次迭代中返回结果,那么您应该创建一个标志变量并在循环结束时返回结果,或者您可以在循环中反转if
条件,如果该条件的计算结果为true,则返回false,如果该条件的计算结果为true,则在循环结束时返回true
public static boolean isValid(String password){
if(password.length() < 8)
return false;
for(int x = 0; x < password.length(); x++)
if(!Character.isLetterOrDigit(password.charAt(x)))
return false;
return true;
}
公共静态布尔值有效(字符串密码){
if(password.length()<8)
返回false;
对于(int x=0;x
除了isValid方法中“for”循环中的返回语句外,您的代码逻辑是正确的。下面是编辑的代码:
public static void main(String[] args)
{
String pw;
Scanner sc = new Scanner(System.in);
System.out.print("Enter a password: ");
pw = sc.next();
if(isValid(pw))
{
System.out.println("Valid Password");
}
else
{
System.out.println("Invalid Password");
}
}
public static boolean isValid(String pw)
{
if(pw.length()<8)
{
return false;
}
else
{
for(int x=0; x<pw.length(); x++)
{
if(!Character.isLetterOrDigit(pw.charAt(x)))
return false;
}
}
return true;
}
publicstaticvoidmain(字符串[]args)
{
串pw;
扫描仪sc=新的扫描仪(System.in);
System.out.print(“输入密码:”);
pw=sc.next();
if(isValid(pw))
{
System.out.println(“有效密码”);
}
其他的
{
System.out.println(“无效密码”);
}
}
公共静态布尔值isValid(字符串pw)
{
if(pw.length()你调试了吗?什么是pw
如果你输入密码,代码实际返回到哪里,等等。你在第一次检查时,在哪里实现了你的循环,对吗?你的循环逻辑完全关闭了。请调试你的代码,看看它返回了什么。或者更好的是:编写一些测试看看哪个失败了-