Java StringBuilder

Java中StringBuilder和String运行速率比较

编程时,若字符串改变的操作较多时,使用StringBuilder,效率会大大提高。下面两段代码实现的功能是一样的,但运行速率相差较大

//String 7ms 37.3MB
public String countAndSay(int n) {
    String ori="1",stemp="";
    int num=0,i=0,j=0;
    char ctemp='1';
    for(i=1;i<n;i++){
        for(j=0;j<ori.length();j++){
            if(j!=0&&ori.charAt(j)!=ctemp){
                stemp+=String.valueOf(num)+ctemp;
                num=0;
            }
            ctemp=ori.charAt(j);
            num++;
        }
        ori=stemp+String.valueOf(num)+ctemp;
        stemp="";
        num=0;
    }
    return ori;
}
//StringBuilder 2ms 35.5MB
public String countAndSay(int n){
    StringBuilder ori=new StringBuilder("1"),stemp=new StringBuilder("");
    int num=0,i=0,j=0;
    char ctemp='1';
    for(i=1;i<n;i++){
        for(j=0;j<ori.length();j++){
            if(j!=0&&ori.charAt(j)!=ctemp){
                stemp.append(num);
                stemp.append(ctemp);
                num=0;
            }
            ctemp=ori.charAt(j);
            num++;
        }
        ori.delete(0,ori.length());
        ori.append(stemp);
        ori.append(num);
        ori.append(ctemp);
        stemp.delete(0,stemp.length());
        num=0;
    }
    return ori.toString();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值