2012-09-23 3 views
2

문자열을 역순으로 재귀 적으로 작성하라는 메시지가 나타납니다. 나는 text이라는 이름의 개인 문자열 변수를 가진 Sentence 클래스를 가지고있다. 프로그램은 Sentence 객체와 호출 메소드를 생성하여 별도의 메인 클래스에서 실행됩니다. 메서드의 반환 형식을 변경할 수 없습니다. 나는 이것을 잠시 동안 일하고 아무데도 얻지 못했습니다. 도움이나 조언을 주시면 감사하겠습니다.재귀를 사용한 문자열 반전

public void reverse() { 
    if (text.length() <= 1) { 
     return; 
    } 

    Sentence x = new Sentence(text.substring(1)); 
    recur = text.substring(0, 1); //recur is another String variable I declared 
    text = x.text.concat(recur); 
    x.reverse(); 
} 
+1

"재귀 적"이란 의미를 알고 있습니까? 잊어 버려, 미안해. 나는 완전히 코드를 잘못 읽었다. – Fildor

+0

@Fildor 무엇이 요점입니까? 이 코드 스 니펫은 재귀 적입니다. 그것은 심지어 정확하게 종료됩니다! – verdesmarald

+0

예, 알고 있습니다. 잊어 버려. 나는 코드에서 뭔가 잘못 이해했다. 그러나 지금 나는 깨달았다. 부끄러운 줄 알았어 :) – Fildor

답변

3

아주 가깝습니다. 지금까지이 두 라인 교체하면 내가 작업을해야이를 볼 수 : 또한

text = x.text.concat(recur); 
x.reverse(); 

를 대신 xrecur의 의미있는 변수 이름을 마련하려고합니다. 이렇게하면 다른 사람 (그리고 너!)이 코드를 더 쉽게 이해할 수 있습니다. 예 :

public void reverse() { 
    if (text.length() <= 1) 
     return; 

    String firstChar = text.substring(0, 1); 

    Sentence rest = new Sentence(text.substring(1)); 
    rest.reverse(); 

    text = rest.text.concat(firstChar); 
}