我有几行文字,例如:
"you current have 194764bleh notifications"
"you current have 32545444bleh notifications"
"you current have 8132bleh notifications"
"you current have 93bleh notifications"
从文本中获取整数的最佳方法是什么?
目前使用line.split
两次,一次用于"有"然后一次为" bleh"
为了获得整数,这样做似乎效率很低。
有没有更好的方法呢?
答案 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));
}
我测试了代码。希望它有所帮助。