将第二个字符串与第一个字符串的第一部分匹配

时间:2017-02-06 12:59:23

标签: java

我正在处理编码包中的一个问题,问题是: 给定一个字符串和第二个“单词”字符串,我们会说如果字符串出现在字符串的前面,则该字符串匹配,除了它的第一个字符串不需要完全匹配。在匹配项上,返回字符串的前面,否则返回空字符串。所以,使用字符串“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 "";
}

1 个答案:

答案 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 "";
    }