我想将新字符串连接到现有字符串的开头,例如,当前字符串 =“”,并且我希望始终将新字符串连接到旧字符串的开头:
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
}
等等
我想将新字符串连接到现有字符串的开头,例如,当前字符串 =“”,并且我希望始终将新字符串连接到旧字符串的开头:
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
}
等等
您可以使用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
,如在原始问题中)进行迭代
我想始终将新字符串连接到旧字符串的开头
这很简单,但效率不高:
String oldString = "";
for (...) {
// Prepare your new string
String newString = ... ;
// Add the new string at the beginning of the old string
oldString = newString + oldString;
}