如何最快的生成"00001"字符串,长度可自定义

xingmu 发布于 2011/10/13 10:09
阅读 610
收藏 0

项目需要用到流水号,下面是我的方法,不知道效率如何,希望有效率更高的算法

String.valueOf(Math.round(Math.pow(10, size)) + 1).substring(1);//size是长度

有个这样的思路,但是不会写,也不知道效率如何:利用数字的二进制可能更快

加载中
0
游客
游客
String.format();
scl33
scl33
+1
0
xingmu
xingmu
一开始我也考虑过这个,不知道生成数据格式的效率高不高
0
游客
游客

引用来自“xing.mu”的答案

一开始我也考虑过这个,不知道生成数据格式的效率高不高
还有比这个更快的吗,有的话通知我,我很期待。
0
xingmu
xingmu
我先求方法,然后再测,哈哈
0
恺哥
恺哥

数据量大吗?

每秒需要能产生多少个流水号?

0
xingmu
xingmu
int size=10;
for (int j = 0; j < 5; j++) {
    Long tLong = System.currentTimeMillis();
    for (int i = 0; i < 1000000; i++) {
        String.valueOf(Math.round(Math.pow(10, size)) + 1).substring(1);
    }
    System.out.println(System.currentTimeMillis() - tLong);
}
=======================
464
437
467
453
454
0
xingmu
xingmu
还是我的问题的描述不清,简单的说就是生成N个0字符串,如何最快
0
恺哥
恺哥

public String m(int qty){

    StringBuilder sb = new StringBuilder();

    for(int i=0;i<qty;i++){

        sb.append("0");
    }

    return sb.toString();

}

sxgkwei
sxgkwei
这个应该是最好的,哈哈,反正只要生产0而已
0
恺哥
恺哥

还有一种方法

public String m(int qty){
    String zero = "0000000000000000000000000000000000000000000000000";
    return zero.subString(0,qty);
}

0
老盖
老盖

引用来自“恺哥”的答案

还有一种方法

public String m(int qty){
    String zero = "0000000000000000000000000000000000000000000000000";
    return zero.subString(0,qty);
}

这个有创意,改成char[]是不是会更快点,

char[] zero={'0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'};

 return new String(zero, 0, qty);

返回顶部
顶部