2017-02-09 99 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');