所以我有这个字符串:
String myString = "Welcome, your drive today to the LAX will be (45+ min). Enjoy your drive!";
将45
作为单独的字符串的最佳方法是什么?此字符串有时可能包含多个数字,例如:
String myString =“欢迎,今天你到洛杉矶国际机场的车道将是(45+分钟)。你应该到达(上午11:10)。享受你的驾驶!”;
但我只想得到一个45分钟以上的那个并将+ min
分开,以便45
是我唯一的字符串。
答案 0 :(得分:0)
使用regular expressions可以轻松完成此操作。 Java预定义的正则表达式字符类。 。 =任何字符(可能与行终止符匹配也可能不匹配) \ d =数字:[0-9] \ D =非数字:[^ 0-9]
String myString = "Welcome, your drive today to the LAX will be (45+ min). Enjoy your drive!";
//Replace all non digit characters with empty space so only numbers will be there.
myString = myString.replaceAll("\\D", "");
System.out.println(myString); //this displays only numbers.
答案 1 :(得分:0)
经过大量的试验和错误,我确实找到了答案。如果你有更好的方法请评论,我不介意改变我接受的答案。
String text = "Welcome, your drive today to the LAX will be (45+ min) and the tolls will cost ($2.50). Enjoy your drive!";
tripMiles = getNumberFromString("(?i)(\\d+)\\s+ min", text);
public static double getNumberFromString(String value, final String s)
{
double n = 0.0;
Matcher M = Pattern.compile(value).matcher(s);
while (((Matcher)M).find())
{
try {
n = Double.parseDouble(((Matcher)M).group(1));
if (debug) Log.v(TAG, "Number is : " + ((Matcher)M).group(1));
}
catch (Exception ex) {
n = 0.0;
}
}
return n;
}