2017-02-06 35 views
1

私はcodingbatの問題の1つを解決しています。問題は次のようになります。 文字列と2番目の "word"文字列を指定すると、文字列の先頭に表示されますが、最初の文字は正確に一致する必要はありません。マッチでは、文字列の先頭を返すか、空の文字列を返します。したがって、文字列 "hippo"では "hi"という単語が "hi"を返し、 "xip"は "hip"を返します。単語は少なくとも長さ1になります。 私はそれを解決することはできませんが、以下のようにオンラインのソリューションとコードを見つけました。しかし、コードは、値がstartWord( "h"、 "ix")のようなときにコードが動作する理由はあります。単語の長さは2で、strの長さは1だけです。なぜコードtemp = str.substring(1、m)はまだ動作しますか?意志はエラーを出すだろうか?は、最初の文字列の最初の部分と2番目の文字列を一致させます

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

'startWord(" h "、" ix ")'は、長さチェックのため空の文字列を返す必要があります。 'if(n> = m)' – munyul

+0

ああ、ありがとう – Kingsfull123

答えて

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 ""; 
    } 
関連する問題