对不起,如果这很长,但请多多包涵。我正在尝试通过递归检查 2 个字符串是否相同(我可以通过基本切掉字符串的一部分来做到这一点)并且通配符有特殊情况:
我一生都无法得到它,我试图检查是否'@'
存在并再次调用该函数以及 asterix 的类似想法,但我无法得到它。任何帮助,将不胜感激。谢谢。
只显示代码的相关部分:
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。]
希望这可以帮助。