前几天,我发布了练习题,我被困住了,我又被困住了

请首先我可以请您不要发布完整的解决方案。

问题在这里

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

另外要注意的是,一旦解决了第二种情况,您实际上就不需要第一种情况了,因为第二种情况已涵盖了这种情况。

10-08 01:44