2017-02-09 29 views
0

在我的IDE和在线IDE中尝试了我在Zybooks.com上的教科书让我工作。我的目标是检查变量passCode包含一个数字。下面的代码:java:在尝试使用.isDigit()时找不到符号

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很新,所以,如果答案很明显,我真的很抱歉。感谢您花时间阅读所有这些内容!

回答

3

你一个String对象,没有按上调用.isDigit()没有这样的方法。这是一个static method of the Character class

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

一个很大的提示是,你的错误消息指出:

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

应自动提示您要查看String class的文档,了解您正在查找的任何方法的文档,然后发现它没有这种方法。

0

java.lang.String中可是没有一个ISDIGIT方法,即只为Char类...

使用它作为

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