-2

我想将新字符串连接到现有字符串的开头,例如,当前字符串 =“”,并且我希望始终将新字符串连接到旧字符串的开头:

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

在这里,我在结束后从 msg 的末尾开始循环 temp 应该包含“Java One”,但按此顺序

 e
 ne
 one
 a one
 va one 
}

等等

4

2 回答 2

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 >= 0(而不是i > 0,如在原始问题中)进行迭代

于 2012-12-20T11:39:44.303 回答
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 回答