2017-02-06 4 views
1

codingbat의 문제 중 하나를 수행하고 있는데 문제는 다음과 같습니다. 문자열과 두 번째 "단어"문자열이 주어지면 단어가 문자열과 일치 함을 알 수 있습니다 if 첫 번째 문자가 정확히 일치 할 필요는 없다는 것을 제외하고는 문자열 앞쪽에 나타납니다. 일치하면 문자열 앞을 반환하거나 그렇지 않으면 빈 문자열을 반환합니다. 따라서 "hippo"라는 문자열을 사용하면 "hi"라는 단어가 "hi"를 반환하고 "xip"은 "hip"을 반환합니다. 단어 길이는 적어도 1이 될 것입니다. 해결할 수는 없지만 온라인 솔루션과 아래 코드를 찾아보십시오. 그러나 코드는 startWord ("h", "ix")와 같은 값일 때 코드가 여전히 작동하는 이유를 설명합니다. 단어의 길이는 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 ""; 
} 
+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 ""; 
    } 
관련 문제