您可以使用以下方法从 a 中获取最后一位数字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
编辑,多个号码:
这是我为你写的一小段丑陋的代码。这会从 a 获取所有数字String
并删除第一个数字。(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