我想弄清楚这个问题。当扫描仪的三个字符的passCode包含一个数字时,方向设置为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正在检查扫描程序的passCode,但我一直收到错误。
我也尝试过:hasDigit = Character.isDigit(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.");
}
遗憾的是答案被揭露但是如果你要破坏学习过程至少尝试给出正确的代码:/
Character类的isDigit()函数除了一个字符或整数。它不会排除字符串,这就是你收到错误的原因。您可以将代码修改为 -
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.");
}
这将给你所需的结果。