【发布时间】:2015-05-28 04:05:16
【问题描述】:
我的任务是使用子字符串来提取字符串的前几个字母,如果它与另一个给定的字符串匹配。基本上,给定一个字符串和第二个“单词”字符串,如果单词出现在字符串的前面,我们会说它与字符串匹配,除了它的第一个字符不需要完全匹配。在匹配时,返回字符串的前面,否则返回空字符串。因此,对于字符串“hippo”,单词“hi”返回“hi”,“xip”返回“hip”。单词的长度至少为 1。
我的方法的问题是当 str 只是一个字母而 word 是不匹配 str 的其他内容时,我运行变成一个
StringOutOfBound 异常
例如,如果 str 是 "h" 而 word 是 "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 "";
}
【问题讨论】:
-
如果 str 是
hiAll而 word 是hiEveryBody应该是什么结果? -
@TAsk idk。我所需的测试用例中没有一个 word 与 str 有很大的不同。为了回答你的问题,我认为预期的结果会是“嗨”,因为之后的一切都不同了,但我可能是错的。