【问题标题】:java: cannot find a symbol when trying to use .isDigit() [duplicate]java:尝试使用.isDigit()时找不到符号[重复]
【发布时间】:2017-06-28 01:39:35
【问题描述】:

在我的 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 很陌生,所以,如果答案很明显,我真的很抱歉。感谢您抽出宝贵时间阅读所有内容!

【问题讨论】:

  • @Tunaki 这不是重复的。接受的答案与副本不在同一范围内。
  • 你应该这样做Character.isDigit(passcode.charAt(0))

标签: java methods compiler-errors cannot-find-symbol


【解决方案1】:

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

把它当作

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

【讨论】:

    【解决方案2】:

    您在 String 对象上调用 .isDigit(),该对象没有这样的方法。这是static method of the Character class

    Character.isDigit(passCode.charAt(0));
    

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-09
      • 2015-12-15
      • 1970-01-01
      • 1970-01-01
      • 2012-10-31
      • 1970-01-01
      • 2020-01-25
      相关资源
      最近更新 更多