将动态数字字符串转换为int

我希望提取字符串中文本的数字部分并将其转换为 int。例如,考虑以下文本:

1-16 of 310 results for "phone case"

通常,我可以使用

String total_item_str = search_result.substring(8,10);

提取值 310。但是,如果它始终是 3 位数字。

我的问题是因为这是返回总搜索结果并且它可以是任意数量的数字,如何动态处理?意思是,无论返回多少位,我都希望能够从文本中提取总搜索结果。

回答

您可以应用一个简单的正则表达式:

String result = "1-16 of 310 results for "phone case"";
        
Pattern pattern = Pattern.compile("S* of (d+) result.+");
Matcher matcher = pattern.matcher(result);
if (matcher.matches()) {
    int totalCount = Integer.parseInt(matcher.group(1));
    ...
}

  • I propose to change the first `.+` to `S*` to limit backtracking.

以上是将动态数字字符串转换为int的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>