比如: 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的零,也是相当头疼的问题.
问高手有没有类似问题的解决方案. 急~~ 在线等.
现在要 将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的零,也是相当头疼的问题.
问高手有没有类似问题的解决方案. 急~~ 在线等.
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();
}一秒之内返回