Клип все данные, кроме определенных данных из ответа сервера для использования в приложении
Я получаю ответ от сервера, как показано ниже,
<p style="font-family:Arial, Helvetica, sans-serif; font-size:18px;"> <strong>XXX Pvt Ltd. has been used 3 times.The contact information for XXX can only be viewed -4 more times on App until it expires. Please urgently verify the information.</strong></p>
Здесь мне нужно целочисленное значение -4, если оно отрицательное, или 4, если оно положительное. Если он отрицательный, я бы хотел получить его с отрицательным знаком.
Есть ли способ обрезать все текстовые значения и просто получить часть ответа от сервера в Android?
Мне действительно нужно количество раз, когда мы можем увидеть информацию выше в моем приложении.
Я попытался исследовать и прошел через некоторые ссылки, как,
Удалить все вхождения \ из строки
Как заменить символ `\n` в качестве новой строки в Android
Как убрать или убрать HTML-теги в Android
Однако ничто из этого не могло помочь мне в достижении того, чего я хочу.
Пожалуйста, кто-нибудь может помочь?
1 ответ
Вы можете получить последнюю цифру из String
используя это:
String s = "";
String str = "<p style=\\\"font-family:Arial, Helvetica, sans-serif; font-size:18px;\\\"> <strong> This is the information you need 5 times you can see.</strong></p>";
Pattern p = Pattern.compile("(\\d+)(?!.*\\d)");
Matcher m = p.matcher(str);
if (m.find()) {
s = m.group();
}
int number = Integer.parseInt(s);
number
это номер из вашей строки HTML.
Смотрите: https://regex101.com/r/jAFJiL/1
Изменить несколько номеров:
Вот небольшой уродливый кусок кода, который я написал для вас. Это получает все числа от String
и удаляет первый. (The 18px
из вашего ввода):
String str = "<p style=\"font-family:Arial, Helvetica, sans-serif; font-size:18px;\"> <strong>XXX Pvt Ltd. has been used 3 times.The contact information for XXX can only be viewed 4 more times on App until it expires. Please urgently verify the information.</strong></p>";
boolean previousWasDigit = false;
ArrayList<Integer> numbers = new ArrayList<>();
String number = "";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (Character.isDigit(c)) {
if (previousWasDigit) {
number += c;
} else {
number = Character.toString(c);
}
previousWasDigit = true;
} else {
if (previousWasDigit) {
numbers.add(Integer.parseInt(number));
}
previousWasDigit = false;
}
}
numbers.remove(0); // we remove the first digit (18) here
// numbers contains the digits of your string