-2

新しい文字列を既存の文字列の先頭に連結したい (たとえば、現在の string="")、常に新しい文字列を古い文字列の先頭に連結したい:

  String msg="Java One",temp;
 for(int i=msg.length()-2;i>0;i--){

ここで、msg の最後から始まるループを作成します

 e
 ne
 one
 a one
 va one 
}

等々

4

2 に答える 2

0

新しい文字列を古い文字列の先頭に常に連結したい

これは非常に単純ですが、あまり効率的ではありません。

String oldString = "";
for (...) {
    // Prepare your new string
    String newString = ... ;
    // Add the new string at the beginning of the old string
    oldString = newString + oldString;
}
于 2012-12-20T11:42:08.753 に答える
0

を使用String#substring(int,int)して、反復ごとに異なる部分文字列を取得できます。

for(int i=msg.length()-1;i>=0;i--){
    System.out.println(msg.substring(i,msg.length()));
}

もちろん、生成された各部分文字列を保存して、それを使って好きなことをすることができます。

このアプローチはより効率的である可能性が高いことに注意してください。新しいStringオブジェクトが作成されますが、それらすべてに対して同じ基本char[]オブジェクトを使用する可能性が高いためです。


msg.length()-1また、(質問の元のコードのように -2 ではなく)および while i >= 0i > 0元の質問のように ではない)から反復していることにも注意してください。

于 2012-12-20T11:39:44.303 に答える