java:尝试使用.isDigit()时找不到符号

Dem*_*ani 0 java methods compiler-errors cannot-find-symbol

在我的IDE和在线IDE中都尝试过,我在Zybooks.com上的教科书允许我使用。我的目标是检查变量是否passCode包含数字。这是代码:

public class CheckingPasscodes{
    public static void main (String [] args) {
        boolean hasDigit = false;
        String passCode = "";
        int valid = 0;

        passCode = "abc";

        if (passCode.isDigit(passCode.charAt(0)) || passCode.isDigit(passCode.charAt(1)) || passCode.isDigit(passCode.charAt(2))) {
            hasDigit = true;
        }

        if (hasDigit) {
            System.out.println("Has a digit.");
        }
        else {
            System.out.println("Has no digit.");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在第9行(第一个if开始的地方)收到错误:

java: cannot find symbol
symbol: method isDigit(char)
location: variable passCode of type java.lang.String
Run Code Online (Sandbox Code Playgroud)

尝试将passCode.charAt(0)(或1和2)更改为'a'(或“ b”和“ c”)以测试是否是因为我将一个方法放入另一个方法中,但是似乎出现了相同的错误。

我最终通过问一个朋友(为我提供了这个)来解决了这个问题:

char s = passCode.charAt(0);
char s1 = passCode.charAt(1);
char s2 = passCode.charAt(2);

if ((s>'0' && s<'9') || (s1>'0' && s1<'9') || (s2>'0' && s2<'9')) {
    hasDigit=true;
}
Run Code Online (Sandbox Code Playgroud)

完全有道理,我确实考虑过做类似的事情,但是本练习所涉及的这一章不是(.charAt()我们之前已经讲过),而是关于.isDigit()其他角色操作的,所以做我的事情几乎就是作弊。

这让我发疯。

PS:我对Java还是很陌生,所以,如果答案确实很明显,我真的很抱歉。感谢您抽出宝贵的时间阅读所有这些内容!

Qix*_*Qix 5

您正在调用.isDigit()String对象没有这种方法。这是该类静态方法Character

Character.isDigit(passCode.charAt(0));
Run Code Online (Sandbox Code Playgroud)

一个大提示是您的错误消息指出以下内容:

位置:类型为java.lang.String的变量passCode

它将自动提示您查看所寻找的任何方法的文档String,随后发现它没有这种方法。