使用递归将字符串与通配符匹配

时间:2013-04-02 02:17:54

标签: java recursion wildcard

对不起,如果这很长但请耐心等待。我试图用递归检查,如果2个字符串是相同的(我可以通过基本的切断字符串的部分来做)并且具有通配符的特殊情况:

我无法获得我的生活,我试图检查'@'是否存在并再次调用该函数,并且对于asterix也有类似的想法,但我无法得到它。任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:1)

只显示代码的相关部分:

else if (c1String.equals("@") || c2String.equals("@")) {
            return areTheSame(x.substring(1), y.substring(1));
        }

        else if (c1String.equals("*") || c2String.equals("*")){
            return true;
        }

我只是用.equals替换(==)字符串。这会照顾你的前两个案例。

==检查您不需要的引用相等性。您需要检查值是否相同,因此使用.equals方法进行字符串比较。

我建议你阅读有关这方面的java文档,以便进一步明确。

第三种是一种特殊情况,您需要明确地将其作为

来处理
else if (x.length() == 0 && y.length() != 0 || y.length() == 0
            && x.length() != 0) {
        return false;
    }

此代码块强制返回false。 [你需要在这个if块处理你的特殊情况,并强制在第三种情况下返回true。]

希望这有帮助。