【问题标题】:match second string with first part of the first string将第二个字符串与第一个字符串的第一部分匹配
【发布时间】:2017-02-06 12:59:22
【问题描述】:

我正在解决一个关于codingbat的问题,问题是: 给定一个字符串和第二个“单词”字符串,如果单词出现在字符串的前面,我们会说它与字符串匹配,除了它的第一个字符不需要完全匹配。在匹配时,返回字符串的前面,否则返回空字符串。因此,对于字符串“hippo”,单词“hi”返回“hi”,“xip”返回“hip”。该单词的长度至少为 1。 我无法解决,但在网上找到了解决方案,代码如下所示。但是,代码有效,为什么当值类似于 startWord("h", "ix") 时代码仍然有效。 word的长度是2,str的长度只有1,为什么code 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 "";
}

【问题讨论】:

  • startWord("h", "ix") 应该返回一个空字符串,因为要进行长度检查。 if(n>=m)

标签: java


【解决方案1】:

你的意思是这样的吗?

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

【讨论】:

    猜你喜欢
    • 2016-03-29
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 2018-04-23
    相关资源
    最近更新 更多