在字符串中获取字符串

时间:2017-08-24 02:09:24

标签: java string

所以我有这个字符串:

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是我唯一的字符串。

2 个答案:

答案 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;
}