在Android中解析具有维度的值的正确方法是什么?例如,我想int
从以下任何字符串中获取值为 20 的值:20px
, 20mm
, 20dp
.
尝试Integer.parseInt()
并没有让我走得太远,因为它会在非数字字符上引发异常。
在Android中解析具有维度的值的正确方法是什么?例如,我想int
从以下任何字符串中获取值为 20 的值:20px
, 20mm
, 20dp
.
尝试Integer.parseInt()
并没有让我走得太远,因为它会在非数字字符上引发异常。
如果该单元始终存在并且只是提到的一个并且您确定您永远不需要它 - 只需解析一个子字符串str.substring(0, str.length() - 3)
我建议使用自定义类来解析和保存包括单位在内的值 - 您有时可能需要它。
如果以 a 开头AttributeSet
,则可以TypedArray
通过 a 获得 aContext
并最终使用getDimension
or 相关功能。
如果您只想将字符串传递给 parseInt 而不会引发异常,请尝试以下操作:
Integer.parseInt( someString.replaceFirst( "[^0-9].*" , "" ) );
正则表达式从第一个不是数字的字符开始截断字符串。这意味着字符串必须以数字开头。