insert append用法 - java:使用StringBuilder在开头插入




stringbuilder转string to (5)

也许我错过了一些东西,但是你想用一个看起来像这样的字符串结束"999897969594...543210" ,对吗?

StringBuilder sb = new StringBuilder();
for(int i=99;i>=0;i--){
    sb.append(String.valueOf(i));
}

我只能用String来做这件事,例如:

String str="";
for(int i=0;i<100;i++){
    str=i+str;
}

有没有一种方法来实现这个与StringBuilder? 谢谢。


这个线程是相当古老的,但你也可以考虑一个递归的解决方案,通过StringBuilder来填充。 这可以防止任何逆向处理等。只需要用递归设计迭代,并仔细决定退出条件。

public class Test {

    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();
        doRecursive(sb, 100, 0);
        System.out.println(sb.toString());
    }

    public static void doRecursive(StringBuilder sb, int limit, int index) {
        if (index < limit) {
            doRecursive(sb, limit, index + 1);
            sb.append(Integer.toString(index));
        }
    }
}

你可以使用strbuilder.insert(0,i);


作为一种替代解决方案,您可以使用LIFO结构(比如堆栈)来存储所有的字符串,当您完成时只需把它们全部放到StringBuilder中。 这自然会颠倒放置在其中的项目(字符串)的顺序。

Stack<String> textStack = new Stack<String>();
// push the strings to the stack
while(!isReadingTextDone()) {
    String text = readText();
    textStack.push(text);
}
// pop the strings and add to the text builder
String builder = new StringBuilder(); 
while (!textStack.empty()) {
      builder.append(textStack.pop());
}
// get the final string
String finalText =  builder.toString();

我用:

int myint = 0;
long double myLD = 0.0;

string myint_str = static_cast<ostringstream*>( &(ostringstream() << myint) )->str();
string myLD_str = static_cast<ostringstream*>( &(ostringstream() << myLD) )->str();

它适用于我的Windows和Linux g ++编译器。





java string insert append stringbuilder