2014-03-03 3 views
0

이 코드는 작동하지 않습니다. 고칠 수 있도록 도와주세요 .............................................. .................................................. .................자바는 재귀를 사용하여 문자열에서 부분 문자열을 찾습니다.

/** 
     Recursive method for looking for a substring in a string. 
     @param text look in 
     @param target look for as substring 
     @return true if target is a substring of text 
    */ 
    public static boolean find(String text, String target) 
    { 
     //-----------Start below here. To do: approximate lines of code = 4 
     // 1. base case: null 
     if (text == null) {return false;}   
     //2. base case: target too long 
     if (target.length() > text.length()) {return false;} 
     //3. base case: same length 
     if (text.length() == target.length()) {return false;} 
     //4. base case: startsWith OR 5. recursive case 
     return true; 
    } 
+1

읽어 보시기 바랍니다 시도 [요청하는 방법 (https://stackoverflow.com/questions/ how-to-ask)를 입력하고 그에 따라 질문을 편집하십시오. –

+0

어떤 오류가 발생합니까? –

+3

여기에 재귀가 없습니다. 나는 코드가 불완전하다고 생각한다. – Rami

답변

2

/** 
Recursive method for looking for a substring in a string. 
@param text look in 
@param target look for as substring 
@return true if target is a substring of text 
*/ 
public static boolean find(String text, String target) 
{ 
//-----------Start below here. To do: approximate lines of code = 4 
// 1. base case: null 
if (text == null || target == null) {return false;} // added target null check  
//2. base case: target too long 
if (target.length() > text.length()) {return false;} 
//3. base case: same length 
if (text.length() == target.length()) {return text.equals(target);} 
//4. base case: startsWith OR 5. recursive case 
return text.startsWith(target) || find(text.substring(1) , target); 
} 
+1

1. 기본 경우에'text'와'target'을 모두 null로 검사해야합니다. 그렇지 않으면 예외가 발생할 수 있습니다. – jmodrak

+0

네,하지만 이건 숙제 문제 같아요. 텍스트가 재귀에서 수정되는 것인데 구조체에 밀착되어 있습니다. 적절한 기본 케이스를 가지고있는 좋은 연습입니다. – clancer

+0

확실히 숙제처럼 보입니다. 그게 나를 절대로 내쫓지 않을 방법으로 만들도록 나를 강요 할 것이다. 구조 기본 케이스는 선생님에 의해 만들어 졌다고 생각합니다. 학생이 이미 코드를 삽입했다고 생각하는 반면, 마지막 줄만 사용하면 어려울 수도 있습니다. – jmodrak

관련 문제