Java匹配一个正则表达式小数位

时间:2013-10-10 15:14:50

标签: java regex if-statement

我试图掌握正则表达式语法。有谁知道如何做以下工作?

    // if there is already a decimal place in the string ignore
    String origString = txtDisplay.getText();

    Pattern pattern = Pattern.compile("/\\./");

    //pattern = 
    if(pattern.matcher(origString)){
        System.out.println("DEBUG - HAS A DECIMAL IGNORE");
    }
    else{
        System.out.println("DEBUG - No Decimal");
    }

1 个答案:

答案 0 :(得分:1)

Java正则表达式不需要模式分隔符;即他们在模式的开头和结尾不需要//斜杠,或者它们将按字面解释。

您需要将模式更改为:

\\.

然后你可以检查是否有这样的匹配:

Matcher matcher = pattern.marcher(origString);
if(matcher.find()){
    System.out.println("DEBUG - HAS A DECIMAL IGNORE");
}
else{
    System.out.println("DEBUG - No Decimal");
}

但是如果你想检查一个字符串是否包含一个点或任何其他字符串文字,你可以使用:

bool doesItContain = origString.indexOf('.') != -1;

其中indexOf()将任何字符串作为参数。