0

这是过去试卷中的一道题。我不太确定如何将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;

}
4

2 回答 2

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

但是,我看不出您究竟想用这些方法实现什么作为返回它们的输入,并且可以更容易地完成

于 2012-08-29T19:21:39.550 回答
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;
}
于 2012-08-29T19:28:46.857 回答