对不起,如果这很长但请耐心等待。我试图用递归检查,如果2个字符串是相同的(我可以通过基本的切断字符串的部分来做)并且具有通配符的特殊情况:
我无法获得我的生活,我试图检查'@'
是否存在并再次调用该函数,并且对于asterix也有类似的想法,但我无法得到它。任何帮助,将不胜感激。感谢。
答案 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。]
希望这有帮助。