新しい文字列を既存の文字列の先頭に連結したい (たとえば、現在の string="")、常に新しい文字列を古い文字列の先頭に連結したい:
String msg="Java One",temp;
for(int i=msg.length()-2;i>0;i--){
ここで、msg の最後から始まるループを作成します
e
ne
one
a one
va one
}
等々
新しい文字列を既存の文字列の先頭に連結したい (たとえば、現在の string="")、常に新しい文字列を古い文字列の先頭に連結したい:
String msg="Java One",temp;
for(int i=msg.length()-2;i>0;i--){
ここで、msg の最後から始まるループを作成します
e
ne
one
a one
va one
}
等々
新しい文字列を古い文字列の先頭に常に連結したい
これは非常に単純ですが、あまり効率的ではありません。
String oldString = "";
for (...) {
// Prepare your new string
String newString = ... ;
// Add the new string at the beginning of the old string
oldString = newString + oldString;
}
を使用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 >= 0
(i > 0
元の質問のように ではない)から反復していることにも注意してください。