将动态数字字符串转换为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.