从Java中的文本字符串中提取整数

时间:2015-06-01 02:49:55

标签: java

我有几行文字,例如:

"you current have 194764bleh notifications"
"you current have 32545444bleh notifications"
"you current have 8132bleh notifications"
"you current have 93bleh notifications"

从文本中获取整数的最佳方法是什么?

目前使用line.split两次,一次用于"有"然后一次为" bleh" 为了获得整数,这样做似乎效率很低。

有没有更好的方法呢?

3 个答案:

答案 0 :(得分:2)

E.g。

String str = "you current have 194764bleh notifications";
str = str.replaceAll("\\D", ""); // Replace all non-digits

使用正则表达式取走所有非数字将是一个选项,
它也不会限制你拥有' &安培; '的Bleh'包裹数字。

与使用拆分相比,效率并不完全确定。

答案 1 :(得分:0)

您可以从上面的行获取子字符串,然后将其转换为int。

String strVal1 = line2.substring(17, line2.indexOf("bleh"));
int intVal1 = Integer.parseInt(strVal1);

我认为字符串格式是一样的。如果不是,您可以将起始索引更改为"具有"。

的索引

答案 2 :(得分:0)

最近我喜欢使用正则表达式来提取字符串中我需要的东西。所以我想使用如下方法:

String a = "you current have 194764bleh notifications";

Pattern numPattern = Pattern.compile("(\\d+)");
Matcher theMather = numPattern.matcher(a);
if(theMather.find())
{
    System.out.println(theMather.group(1));
}

我测试了代码。希望它有所帮助。