我正在处理编码包中的一个问题,问题是: 给定一个字符串和第二个“单词”字符串,我们会说如果字符串出现在字符串的前面,则该字符串匹配,除了它的第一个字符串不需要完全匹配。在匹配项上,返回字符串的前面,否则返回空字符串。所以,使用字符串“hippo”,单词“hi”返回“hi”,“xip”返回“hip”。这个词的长度至少为1。 我无法解决它,但在网上找到了一个解决方案,代码如下所示。但是,代码的工作原理是,当值类似于startWord(“h”,“ix”)时代码仍然有效。单词的长度是2,str的长度只有1,为什么代码temp = str.substring(1,m)仍然有效???会给出一个错误??
public String startWord(String str, String word) {
int n = str.length();
int m = word.length();
String temp;
if(n>=m){
temp = str.substring(1,m);
if(word.substring(1).equals(temp)){
return str.charAt(0)+temp;
}
}
return "";
}
答案 0 :(得分:2)
你的意思是这样的吗?
public String startWord(String str, String word) {
if (str.length() > 0 && word.length() > 0 &&
str.substring(1).startsWith(word.substring(1))) {
return str.substring(0, word.length());
}
return "";
}