匹配函数在Java中不起作用

匹配函数在Java中不起作用,java,string,Java,String,我正在用Java做一些匹配函数。我有一些像这样的绳子 停车场、预留停车场等。。 如果我像这样搜索park这个词 if(input.trim().contains ("Park")) dummies = dummies + " 1"; else dummies = dummies + " 0"; 它还打印了预留停车位的值。我不知道如何在Java中找到精确的匹配。任何帮助都将不胜感激。Contains言行一致。它测试作为输入的字符串是否在测试所针对的字符串中的某个位置。因此“batter

我正在用Java做一些匹配函数。我有一些像这样的绳子 停车场、预留停车场等。。 如果我像这样搜索park这个词

if(input.trim().contains ("Park"))
dummies = dummies + "   1";
else 
dummies = dummies + "   0";

它还打印了预留停车位的值。我不知道如何在Java中找到精确的匹配。任何帮助都将不胜感激。

Contains言行一致。它测试作为输入的字符串是否在测试所针对的字符串中的某个位置。因此
“batteryparkhorsewidow”.contains(“park”)
将返回
true

您正在寻找的可能是equals方法。此方法测试字符串是否相等。因此,如果字符串是“park”,它将只返回
true
,不多也不少


请注意,
等于
区分大小写。对于不区分大小写的相等检查,请使用
equalsIgnoreCase

您可能需要在敏感搜索中选择大小写

将输入和匹配的字符串更改为大写/小写和 然后匹配

输入-驻车

public static void main(String[] args) {
        String input = "park";
        if (input.trim().toUpperCase().contains("Park".toUpperCase()))
            dummies = dummies + "   1";
        else
            dummies = dummies + "   0";

        System.out.println(dummies);
    }
输出

   1
   1
输入-预留停车位

public static void main(String[] args) {
        String input = "reserved_parking";
        if (input.trim().toUpperCase().contains("Park".toUpperCase()))
            dummies = dummies + "   1";
        else
            dummies = dummies + "   0";

        System.out.println(dummies);
    }
输出

   1
   1

这似乎是一个个案问题。在检查字符串之前,可以将其小写或大写

input.trim().toUpperCase().contains("PARK")
或者使用一些外部库,比如ApacheCommonsLang


要找到精确匹配,您需要一个正则表达式,如下所示:

private boolean isMatching(String source, String stringToSearch){
     String pattern = "\\b" + stringToSearch + "\\b";
     Pattern p = Pattern.compile(pattern);
     Matcher m = p.matcher(source);
     return m.find();
}

正则表达式中的\b选项表示“word bonduary”。因此,如果您将其作为stringToSearch中的参数传递,则它将完全匹配“Park”,但它与“reserved_parking”不匹配,返回false。

您正在查找
input.trim().equals(“Park”)
?@marstran,这无法在整个字符串中搜索!!是的,我的问题是,如果我检查停车位,它会打印预约停车位also@arunabimaniyu,标题错了<“代码>包含”正在工作,但您的需求不同。@HarshitShrivastava我不理解他的问题。这就是我问的原因。为了找到精确匹配,正则表达式有点过头了,不是吗?