Java - 将此方法转换为for和while循环

时间:2012-08-29 19:18:50

标签: java for-loop while-loop

这是过去的试卷中的一个问题。我不太确定如何将extract方法转换为while和for循环。

我尝试过这个问题: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;

}

2 个答案:

答案 0 :(得分: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;
}

然而,我并没有看到你试图通过这些方法实现什么作为返回他们的输入,并且可以做得更容易

答案 1 :(得分:0)

这个函数juste返回收到的字符串,然后是字符串的最后一个字符(即:&#39; abcd&#39; =&gt;&#39; abcdd&#39;),我正确地读了它。 它在递归调用中使用全局变量,它很有趣,但不惜一切代价避免:)

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