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

时间:2017-02-09 21:12:48

标签: 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.");
        }
    }
}

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

java: cannot find symbol
symbol: method isDigit(char)
location: variable passCode of type java.lang.String

尝试将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;
}

这很有道理,我确实想过做类似的事情,但这个练习的章节并不是关于.charAt() - 我们之前已经介绍过 - 而是关于.isDigit()和其他角色操作一样,做我所做的就是作弊。

这让我疯了。

P.S。:我对Java很陌生,所以,如果答案非常明显,我真的很抱歉。感谢您花时间阅读所有这些内容!

2 个答案:

答案 0 :(得分:3)

您在body { background-image: url("image.jpg"); background-repeat: no-repeat; } 对象上调用.isDigit(),该对象没有这样的方法。这是一个static method of the Character class

String

一个很大的提示是您的错误消息说明如下:

  

location:java.lang.String类型的变量passCode

应自动提示您查看String class以获取有关您正在寻找的任何方法的文档 - 然后,发现它没有这样的方法。

答案 1 :(得分:0)

java.lang.String没有isDigit方法,只适用于Char类......

将其用作

boolean hasDigit = Character.isDigit('1');