2012-08-29 50 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; 
}