前几天,我发布了练习题,我被困住了,我又被困住了
请首先我可以请您不要发布完整的解决方案。
问题在这里
http://www.javabat.com/prob/p141494
并阅读
给定一个字符串和第二个“单词”字符串,如果单词出现在字符串的前面,我们将说该单词与该字符串匹配,只是它的第一个字符不需要完全匹配。匹配时,返回字符串的开头,否则返回空字符串。因此,对于字符串“ hippo”,单词“ hi”返回“ hi”,而“ xip”返回“ hip”。该单词的长度至少为1。
startWord(“ hippo”,“ hi”)→“ hi”
startWord(“ hippo”,“ xip”)→“ hip”
startWord(“ hippo”,“ i”)→“ h”
我感到非常困惑,问题的措辞没有帮助我!这是我到目前为止的代码
public String startWord(String str, String word)
{
if (str.startsWith(word)){
return str.substring(0, word.length());
}
if (str.substring(1, str.length()).equals(word.substring(1, word.length()))){
return str.substring(0, word.length());
}
return "";
}
希望有人能够在这里为我提供指示或2的帮助,谢谢您的帮助
最佳答案
您的问题出在第二次比较中(一般情况)。您将str的子字符串带到str的末尾,并将其与word的子字符串进行比较。但是,如果str =“ hippo”和word =“ xip”,则“ ippo”!=“ ip”。
另外要注意的是,一旦解决了第二种情况,您实际上就不需要第一种情况了,因为第二种情况已涵盖了这种情况。