2011-04-05 62 views
0

解析Android中尺寸值的正確方法是什麼?例如,我想從這些字符串中的任何一個獲得值爲20的int20px,20mm20dp解析Android中尺寸的值

嘗試Integer.parseInt()沒有讓我走得很遠,因爲它在非數字字符上引發異常。

回答

0

如果單位總是存在的,只是提到了一個,你肯定你永遠不會需要它 - 簡單地分析一個子str.substring(0, str.length() - 3)

我會建議使用自定義的類來解析並保持包括單位在內的價值 - 您可能需要某個時間。

+0

我想知道是否這樣的東西已經內置到Android SDK中。似乎它會是常用的東西。 – 2011-04-05 05:11:35

+0

我相信在解析UI佈局XML時會有這樣的東西在Android中使用。儘管我沒有發現它是公開的,但是對於這裏提到的相當小的問題,編寫一個類來分析和保存解析值是一個幾分鐘的問題。 :O) – mbanzon 2011-04-05 05:19:25

0

如果從AttributeSet開始,可以通過Context獲取TypedArray,最終使用getDimension或相關函數。

如果你只是想傳遞一個字符串,parseInt函數沒有拋出異常試試這個:

Integer.parseInt(someString.replaceFirst("[^0-9].*" , "")); 

正則表達式截斷開始不是一個數字的第一個字符的字符串。這意味着字符串必須以數字開頭。