2012-08-29 45 views
0

這是來自過去試卷的問題。我不太確定如何將extract方法轉換爲while和for循環。Java - 將此方法轉換爲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; 
} 

不過,我不知道到底你想實現這些方法作爲回報他們的意見,並可以做更容易

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; 
}