2011-04-15 84 views
0

我的屏幕上有一個EditText對象(et_travel),它需要行駛里程。我搶,像這樣的數據:快速變量問題

 float travel = Float.parseFloat(et_travel.getText().toString()); 
      if(travel > 40000){ 

我才發現,如果有人把40000在EditText上,一切工作正常,但如果他們把4萬(加上一個逗號的數字),我強制關閉的浮動旅行= ...聲明。

如何在不增加逗號的情況下通過用戶問題評估號碼?

+0

這是什麼技術? – 2011-04-15 20:31:14

回答

0

這是在Java中?它似乎是,但我想知道我是否錯了。無論如何,我建議你從字符串中刪除所有不是數字類型的字符。一種方法可以使用正則表達式。

一個辦法做到這一點在Java中可能是以下幾點:

String input = et_travel.getText().toString(); 
input = input.replaceAll("[^0-9]", ""); 
float travel = Float.parseFloat(input); 
... 

這樣一來,你帶任何東西,是從字符串非數字值,然後再嘗試做你的工作。顯然,在這之前做一些錯誤檢查(如輸入不爲空等)。 然而,需要進行一項更改,您可能需要維護'。'字符(如果給出非整數值)。這需要稍微改變第一個正則表達式。

請點擊這裏:http://download.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#replaceAll(java.lang.String, java.lang.String)

+0

工作完美...謝謝! – greydarrah 2011-04-15 21:22:44

0

你需要的是對輸入進行一些驗證。在將字符串轉換爲浮點數之前解析字符串。如果有任何','然後刪除它們。如果只有垃圾然後拒絕輸入,否則有人可能會在輸入中放入一個單詞或其他任何東西,並在您的程序中造成嚴重破壞。

0

退房 inputType限制用戶輸入

android:inputType="number" 
+0

也是一個好主意......謝謝! – greydarrah 2011-04-15 21:23:41