2012-08-29 3 views
0

이것은 과거의 시험 논문의 질문입니다. 나는 while 루프와 for 루프로 extract 메소드를 변환하는 방법을 잘 모른다.자바 -이 방법을 for 및 while 루프로 변환

나는이 질문을 시도했다 : extract1extract2 방법이지만 나는 틀렸다는 것을 알고있다. 원래의 방법은 유용하지 않지만 시험을 통해 방법을 다르게 작성하는 방법을 보여줄 것을 요구합니다. 나는 그들이 미래의 참고를 위해 어떻게 될 수 있었는지 알고 싶었다.

String extractedThis = ""; 

public String extract(String text){ 
    if(text.length()==0){ 
     return extractedThis; 
    } else { 
     return extractedThis = text.charAt(0) + extract(text.substring(1)); 
    } 
} 

public String extract1(String text) { 

    while (text != null) { 
     extractedThis = text.charAt(0) + text.substring(1); 
    } 
    return extractedThis; 
} 

public String extract2(String text) { 

    for (int i = 0; i < text.length(); i++) { 

     extractedThis = text.substring(i); 
    } 

    return extractedThis; 

} 
+0

당신이 당신의 방법을 테스트 한에 방지하기 위해? – codingbiz

답변

0
public String extractWhileLoop(String text) { 
    extractedThis = ""; 

    while(text.length() > 0) { 
     extractedThis += text.charAt(0); 
     text = text.substring(1); 
    } 
    return extractedThis; 
} 

public String extractForLoop(String text) { 
    extractedThis = ""; 
    for (int i = 0; i < text.length(); i++) { 

     extractedThis += text.charAt(i); 
    } 

    return extractedThis; 
} 

그러나, 나는 정확히이 반환 자신의 입력으로 이러한 방법으로 달성하기 위해 노력하고,이 기능은 juste 수신 된 문자열이 다음에 돌려주는

0

훨씬 쉽게 수행 할 수 있는지 볼 수 없습니다 문자열의 마지막 문자 (예 : 'abcd'=> 'abcdd')로 올바르게 읽습니다. 그것은, 재귀 호출에서 전역 변수와 함께 재생 재미,하지만 뭔가 어떤 비용 :

public String extract(String text){ 
    String lastChar = ''; 
    extractedThis = text; 
    while(text.length() > 0) { 
    lastChar = text.charAt(0); 
    text = text.substring(1); 
    } 

    return extractedThis = extractedThis + lastChar; 
} 
관련 문제