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') in I read it correctly. 再帰呼び出しでグローバル変数を操作します。楽しいですが、何としても避けるべきものです :)

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 に答える