我正在尝试解决此问题。当来自扫描仪的三个字符的密码包含数字时,将方向设置为hasDigit为true。
下面的代码
import java.util.Scanner;
public class CheckingPasscodes {
public static void main (String [] args) {
Scanner scnr = new Scanner(System.in);
boolean hasDigit;
String passCode;
hasDigit = false;
passCode = scnr.next();
hasDigit = Character.isDigit(passCode);
if (hasDigit) {
System.out.println("Has a digit.");
}
else {
System.out.println("Has no digit.");
}
}
}
我已经输入了 hasDigit = Character.isDigit(passCode);
我的逻辑是character.isDigit正在从扫描仪检查密码,但我一直收到错误消息。
我也尝试过: hasDigit = Character.isDigit(0); 而第一个测试通过了,但另一个没有通过。据此,我假设我必须输入字符串,以便它可以测试任何内容,而不仅仅是位置0处的字符。
感谢您的帮助。
答案 0 :(得分:0)
for(int i = 0 ;i <passCode.length();i++) {
hasDigit = Character.isDigit(passCode.charAt(i));
if (hasDigit) {
System.out.println("Has a digit.");
break;
}
}
if(!hasDigit) {
System.out.println("Has no digit.");
}
可惜答案没有透露,但是如果您打算破坏学习过程,至少尝试提供正确的代码:/
答案 1 :(得分:-2)
isDigit()函数,一个字符或整数除外。它不排除string,这就是为什么您会出错。您可以将代码修改为-
hasDigit = false;
passCode = scnr.next();
for(int i = 0 ;i <passCode.length();i++) {
hasDigit = Character.isDigit(passCode.charAt(i));
if(hasDigit)
break;
}
if (hasDigit) {
System.out.println("Has a digit.");
}
else {
System.out.println("Has no digit.");
}
这将为您提供所需的结果。