在构建一个android应用程序中,我想从收件箱消息中仅提取数值(Rs.875)并将它们全部添加。 我该怎么做,请给点意见。如何从字符串中提取数字值
示例:消息将如下所示 - 1>为9055668800充值Rs.196成功。使用免费应用即时充值预付费手机。 2>嗨,我们已收到付款2000.000与ref.no.NF789465132。敬请期待,同时我们确认您的预订。
我只能从文本中计算出金额。
在构建一个android应用程序中,我想从收件箱消息中仅提取数值(Rs.875)并将它们全部添加。 我该怎么做,请给点意见。如何从字符串中提取数字值
示例:消息将如下所示 - 1>为9055668800充值Rs.196成功。使用免费应用即时充值预付费手机。 2>嗨,我们已收到付款2000.000与ref.no.NF789465132。敬请期待,同时我们确认您的预订。
我只能从文本中计算出金额。
您可以这样做:您可以使用Regex
,如"(?<=Rs.)\\d+[\\.\\d]*"
来获取问题中提问的金额。 我只能从文本中计算出金额。
String message = "Recharge of Rs.196 for 9055668800 is successful. Recharge prepaid mobile instantly using freecharge app. hi, we have received payment of Rs.2000.00 with ref.no.NF789465132. Stay tuned while we confirm your booking.";
Pattern pattern = Pattern.compile("(?<=Rs.)\\d+[\\.\\d]*");
Matcher matcher = pattern.matcher(message);
double sum = 0;
while (matcher.find()) {
String digit = matcher.group();
System.out.println("digit = " + digit);
sum += Double.parseDouble(digit);
}
System.out.println("sum = " + sum);
而且它的出放:
digit = 196
digit = 2000.00
sum = 2196.0
简单而完美不像我的回答 – Pragnani
@PragnaniKinnera谢谢先生! –
@BahramdunAdil你的问题是什么?为什么你保持低调投票的其他答案?这是荒唐的。 – user2004685
这里是一个没有正则表达式:
String[] messageParts = message.split(" ");
double sum = 0;
for (String messagePart : messageParts) {
if (messagePart.startsWith("Rs.")) {
sum += Double.parseDouble(messagePart.substring(messagePart.indexOf("Rs.") + 3));
}
}
System.out.println("Sum: " + sum);
,输出是
总:2196.0
如果您只想从给定的字符串中提取充值金额,那么您可以使用正则表达式,如Rs.[0-9.]+
。然后可以将它解析为整数或双精度来总结它。
下面是一个简单的代码片段:
public static void main (String[] args)
{
String str = "Recharge of Rs.196.00 for 9055668800 is successful.";
Pattern r = Pattern.compile("Rs.[0-9.]+");
Matcher m = r.matcher(str);
double sumTotal = 0;
if (m.find()) {
System.out.println("Amount: " + m.group(0).substring(3));
sumTotal += Double.parseDouble(m.group(0).substring(3));
}
}
输出:
Amount: 196.00
这是最好的解决方案,但您可以使用'while'循环来代替'if'子句来检查所有正确捕获的事件。 –
这个答案没有意义。它应该被写为评论。 –
@Praveen真的吗?那么其余的答案是如何有意义的。 – user2004685
要提取的所有数值或只是一个数值? – Mrunal
@Mrunal只是所有消息的金额(Rs.200),我必须将所有这些金额相加并生成一个总金额。 – Prathik