对不起,如果这很长,但请忍受我。我试图检查,与递归,如果2个字符串是相同的(这是我能够通过基本切断部分字符串),并有通配符的特殊情况:使用递归匹配字符串与通配符
我不能得到我试图检查是否存在'@'
,并再次调用该函数,并为asterix类似的想法,但我无法得到它。任何帮助,将不胜感激。谢谢。
对不起,如果这很长,但请忍受我。我试图检查,与递归,如果2个字符串是相同的(这是我能够通过基本切断部分字符串),并有通配符的特殊情况:使用递归匹配字符串与通配符
我不能得到我试图检查是否存在'@'
,并再次调用该函数,并为asterix类似的想法,但我无法得到它。任何帮助,将不胜感激。谢谢。
就显示代码的相关部分:用.equals字符串
else if (c1String.equals("@") || c2String.equals("@")) {
return areTheSame(x.substring(1), y.substring(1));
}
else if (c1String.equals("*") || c2String.equals("*")){
return true;
}
我只是代替(==)。这照顾你的前两种情况。
==检查您不需要的参考平等。您需要检查值是否相同,因此使用.equals方法进行字符串比较。
为了更加清晰,我建议你阅读java文档。
三是特殊情况,你需要明确地照顾它作为
else if (x.length() == 0 && y.length() != 0 || y.length() == 0
&& x.length() != 0) {
return false;
}
这个代码块部队返回false。 [你需要处理你的特殊情况,如果在第三种情况下强制返回true。]
希望这会有所帮助。
非常感谢您的帮助和回复:)。你有什么提示/提示可以给我第三个案子吗? – StackPWRequirmentsAreCrazy
是的。在else if块(你现在刚刚返回false的地方),只需为你的特殊情况添加一个条件即可。选择非零长度的字符串并检查是否所有字符均为'*'。如果确实如此,则返回true否则返回false。 – prashant
再次感谢你! – StackPWRequirmentsAreCrazy
您可以使用''(单引号)运算符而不是“”(双引号)运算符来比较字符和文字。 –
您是否使用过调试器来遍历代码? – Bernard