2012-12-07 93 views
-1

我在比較輸入值。這是我想說的一個樣本。在java中比較輸入值

  if(text.input != float) 
      { 
       //code to calculate 
      } 

我不想允許輸入數字以外的值。它是否正確?

+0

不是它的不正確的方式..不會工作 –

回答

6

你應該這樣做

try { 
    float value = Float.valueOf(text.input); 
    // Do something with value - it's OK. 
} catch (NumberFormatException e) { 
    // text.input is not a float, handle appropriately... 
} 
+0

'valueOf'將爲用戶定義? ..i不工作在java –

+3

什麼是_user-define_? 'text.input'顯然應該是一個'java.lang.String'。 –

0

使用try/catch塊來實現邏輯將「工作」,但我不知道它是做更有效率的事情。

如果文本值實際上是一個浮動,但只佔一小部分時間,所以非浮動確實是一種特殊情況,那麼我會同意try/catch的安排。

如果非浮點數是輸入的更大部分,我會說你最好使用正則表達式來檢查有效的浮點數而不是拋出異常。

+0

你的陳述大體上是正確的(因爲處理_exceptional_情況應該保存異常),但是根據我的經驗,這本身就是一個例外:),這是由於它的廣泛使用。順便說一下,Float.valueOf()也可以解析工程符號和其他一些東西。 –

+0

夠公平的。 OP(和其他人)應該意識到這種權衡。正則表達式可以在沒有例外情況下執行相同的操作http://stackoverflow.com/questions/2293780/how-to-detect-a-floating-point-number-using-a-regular-expression – duffymo