解析包含字母和数字的字符串

3
运行此方法会得到总帖子输出的字符串。
String numberOfPost = test.runNewAdvancedSearch(query, waitTime, startDate, endDate, selectedBrowser, data1, "");

int numberOfPostsInt = Integer.parseInt(numberOfPosts.replace(",", ""));

这个parseInt无法工作

我该如何解析下面的内容?

"Total Posts: 5,203"

numberOfPost 包含什么内容? - Halvor Holsten Strand
1
numberOfPost 是否总是包含形式为 Total Posts: x,xxx 的字符串? - Kon
试试我的代码,它非常强大而简单。 - james
"总帖数:XXXX" - user3878866
3个回答

4

尝试这个完全功能的示例:

public class Temp {

    public static void main(String[] args) {

        String s = "Total Posts: 5,203";
        s = s.replaceAll("[^0-9]+", "");
        System.out.println(s);

    }

}

正则表达式模式 [^0-9]+ 的含义 - 移除所有出现一次或多次的不属于字符列表[ ]中的09的字符,使用+

使用 Integer.parseInt(s) 将字符串转换为整数。 - james

2

如果逗号是小数分隔符:

    double d = Double.parseDouble(s.substring(s.lastIndexOf(' ') + 1).replace(",", "."));

如果逗号是分组分隔符:
    long d = Long.parseLong(s.substring(s.lastIndexOf(' ') + 1).replace(",", ""));

如果您喜欢我的答案,可以给我一个+1吗?我会非常感激。我需要积分来为一个EJB问题设置悬赏。谢谢。https://dev59.com/Wuo6XIcBkEYKwwoYJAvV - james

0

试试这个:

String numberOfPost = test.runNewAdvancedSearch(query, waitTime, startDate, endDate, selectedBrowser, data1, ""); // get the parse string "Total Posts: 5,203
int index = numberOfPost.lastIndexOf(":");
String number = numberOfPost.substring(index + 1);
int numOfPost = Integer.parseInt(number.replace(",", "").trim());
System.out.println(numOfPost); // 5203enter code here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接