Разбор значения с измерением в Android - PullRequest
0 голосов
/ 05 апреля 2011

Как правильно проанализировать значение с измерением в Android?Например, я хотел бы получить int со значением 20 из любой из следующих строк: 20px, 20mm, 20dp.

Попытка Integer.parseInt() не дает мнеочень далеко, потому что он генерирует исключение для нечисловых символов.

Ответы [ 2 ]

0 голосов
/ 02 июня 2011

Если вы начинаете с AttributeSet, вы можете получить от TypedArray до Context и в конечном итоге использовать getDimension или связанную функцию.

Если вы просто хотите передать строку в parseInt без исключения, попробуйте это:

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

Регулярное выражение усекает строку, начиная с первого символа, который не является цифрой. Это означает, что строка должна начинаться с цифры.

0 голосов
/ 05 апреля 2011

Если блок присутствует всегда и является только одним из упомянутых И вы уверены, что он вам никогда не понадобится - просто проанализируйте подстроку str.substring(0, str.length() - 3)

Я бы порекомендовал использовать пользовательский класс для анализаи удерживайте значение, включая единицу измерения - оно может понадобиться вам когда-нибудь.

...