我该如何匹配字符串?

时间:2016-09-14 16:48:15

标签: java regex string pattern-matching

我已经编写了一个方法,用于在程序向前移动之前将字符串输入与特定模式匹配,但Netbeans IDE告诉我转义字符是非法的。我不确定如何解决它。

方法如下:

public static boolean patternMatch(String ct){
    if(ct.equals("\d\d:\d\dam")){
        return true;
    }
    else {
        if(ct.equals("\d\d:\d\dpm"))
            return true;
    }
    return false;
}

模式是一种时间模式,需要根据用户的输入匹配##:##am##:##pm。这一个会起作用吗?有没有办法可以通过这种方式将输入与模式相匹配?

2 个答案:

答案 0 :(得分:3)

首先.. 不要忘记因为Java(\\d)而双重转义!!

使用返回match()的正则表达式函数boolean。您可以使用默认库Matcher中的类Patternjava.util.regex.

public static boolean patternMatch(String ct) {
    Pattern p = Pattern.compile("\\d\\d:\\d\\d[ap]m");
    Matcher m = p.matcher(ct);
    return m.matches();
}

请注意,您可以使用if-else轻松避免[ap]m语句,该a使pam中的一个与pmreturn ct.matches("\\d\\d:\\d\\d[ap]m"); 成功相匹配}。

然而,最简单直接的方法是:

1.0.0-beta.11-webpack.2

答案 1 :(得分:1)

public void(double factor1, double factor2){
...
cplexModel.import("path/to/abc.lp")
// Change parameters, how to do it?

这将检查字符串是否在一次测试中匹配am或pm,因此大大简化了方法。