从服务器响应中剪切除特定数据以外的所有数据以在应用程序中使用
Clip all the data except a certain data from server response to use in app
我从服务器收到如下响应,
<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 中的服务器获取部分响应?
我实际上需要计算我们可以在我的应用程序中看到上述信息的次数。
我尝试研究并浏览了一些链接,
Remove all occurrences of \ from string
How to replace the characher `\n` as a new line in android
How to strip or escape html tags in Android
然而,none 实际上可以帮助我实现我想要的。
拜托,有人可以帮忙吗?
您可以使用以下方法从 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
中获取所有数字并删除第一个。 (您输入的 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
我从服务器收到如下响应,
<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 中的服务器获取部分响应?
我实际上需要计算我们可以在我的应用程序中看到上述信息的次数。
我尝试研究并浏览了一些链接,
Remove all occurrences of \ from string
How to replace the characher `\n` as a new line in android
How to strip or escape html tags in Android
然而,none 实际上可以帮助我实现我想要的。
拜托,有人可以帮忙吗?
您可以使用以下方法从 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
中获取所有数字并删除第一个。 (您输入的 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