我的任务是使用substring来拉出字符串的前几个字母(如果它与另一个给定的字符串匹配)。基本上,给定一个字符串和第二个"字"如果字符串出现在字符串的前面,我们会说该字匹配字符串,除了它的第一个字符不需要完全匹配。在匹配项上,返回字符串的前面,否则返回空字符串。所以用字符串" hippo"单词" hi"返回"嗨"和" xip"返回" hip"。这个词至少是长度为1.
我的方法存在的问题是 str 只是一个字母而字是其他不匹配 str 的情况,我碰到了
StringOutOfBound异常
例如,如果 str 是" h"并且单词是" ix",它应该什么也不返回。相反,我的方法崩溃与stringoutofbound异常。我该怎么做才能修复我的逻辑。
public String startWord(String str, String word) {
int length;
length = word.length();
if (str.substring(0, length).equals(word))
return str.substring(0, length);
else if (str.substring(1, length).equals(word.substring(1, word.length())))
return str.substring(0, length);
else
return "";
}
答案 0 :(得分:2)
以这种方式纠正你的条件:
DropdownListViewCountries
答案 1 :(得分:1)
错误的原因是str
长度小于word
长度。请在您的逻辑之前检查:if(str.length()<=word.length())
。
在else
部分,始终返回""
,因为它永远不会满足您的条件。
if(str.length()>=word.length())
{
if (str.substring(0, length).equals(word))
return str.substring(0, length);
else if (str.substring(1, length).equals(word.substring(1, word.length())))
return str.substring(0, length);
else
return "";
}
else{
return "";
}