0

对不起,如果这很长,但请多多包涵。我正在尝试通过递归检查 2 个字符串是否相同(我可以通过基本切掉字符串的一部分来做到这一点)并且通配符有特殊情况:

我一生都无法得到它,我试图检查是否'@'存在并再次调用该函数以及 asterix 的类似想法,但我无法得到它。任何帮助,将不胜感激。谢谢。

4

1 回答 1

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。]

希望这可以帮助。

于 2013-04-02T02:29:51.190 回答