比如: String text = abcd;
现在要 将text变成长度为1MB的 字符串,在abcd前补零.我试过用IF语句 :
protected String addZeroLeft(String str, int length)
{
if(str == null) {
str = "";
}
if(str.length()>length){
str = str.substring(0,length);
}
int iSize = length - str.length();

if(iSize <= 0) {
return str;
}
for(int i = 0; i < iSize; i++) {
str = "0" + str;
}
return str;
}结果效率很低,耗时太长时间才循环完.
而用 java.text.DecimalFormat 却要先给定 1MB的零,也是相当头疼的问题.
问高手有没有类似问题的解决方案. 急~~ 在线等.

解决方案 »

  1.   


    public static void main(String args[])
    {
    String text="abcd";
    //long start=
    text=new Testbuf().add0(text);
    System.out.println("完成");
    }
    public String add0(String a)
    {
    int length=1024*1024-a.length();
    StringBuffer sbf=new StringBuffer();
    for(int i=0;i<length;i++)
    {
    sbf.append(0);
    }
    sbf.append(a);
    return sbf.toString();
    }一秒之内返回
      

  2.   

    楼主要用到大量的插入字符的时候得想到stringbuffer啊  用string会消耗你的内存的!~