2013-12-10 135 views
0

我需要把一個字符作爲輸入,並檢查它是否是一個數字(0-9)或+ - */ 我怎樣才能以優雅的方式做到這一點,而無需單獨檢查每一個?如何檢查輸入是否在java中的一組值中?

+1

對於數字,您可以使用'Character.isDigit(char)' –

+1

您可以使用正則表達式來指定您的匹配條件。 – hankd

+0

把你的字母表放在一個字符串中檢查字符串是否包含輸入。 – jackrabbit

回答

1

如果你正在解析一個數學方程,並且想驗證你有一個有效的數學方程,那麼只有這樣才能正確地執行它就是構建一個狀態機並單獨檢查每個字符。

如果您只想驗證字符串中只有那14個字符,那麼您可以使用正則表達式或String.contains()。

+0

有沒有辦法使用String.contains()來查明字符串是否不包含任何東西,但這些值? – CountBale

+0

@ user3002830從[here](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html),'replaceAll'後跟'isEmpty'可能更適合檢查if它包含的值不是指定的值。 – Floegipoky

0

您可以使用該字符的ASCII十進制表示法。

 int asInt = (int)c; 

    if (asInt >= 48 && asInt <= 57) 
     System.out.println("Digit range"); 
    else { 
     switch (asInt) { 
     case 42: System.out.println("Is multiplication sign.");break; 
     case 43: System.out.println("Is plus sign.");break; 
     case 45: System.out.println("Is less sign.");break; 
     case 47: System.out.println("Is division sign.");break; 
     default: System.out.println("This is something we weren't expecting."); 
     } 
    } 
+0

我不認爲這是一個很乾淨的方法來做到這一點,但我認爲值得指出的是,你不需要直接使用ASCII值。您可以在字符串和字符上切換。 – Floegipoky

相關問題