作者godfat (godfat 真常)
看板java
标题Re: [J2SE] String padding 的问题
时间Sun Apr 27 03:15:58 2008
: 推 ClareQ:还可以更快喔,照理说不用每次都产生一组char阵列^^ 04/27 02
试了一下,这样确实更快:
1 是我原本的写法
2 是原 po 的写法
3 是 infinitlee 的 String.format(为什麽那麽慢?我以为会很快)
4 是改成暴力写死的写法
godfat ~/p/t/padding>
time java Padding; time java Padding2; time java Padding3; time java Padding4
1.43 real 1.28 user 0.10 sys
5.94 real 5.63 user 0.16 sys
5.53 real 5.16 user 0.20 sys
1.07 real 0.95 user 0.07 sys
private static String Spaces = "这边先产生最长可能需要的空白";
public static String pad(String str, int size){
int length = str.getBytes().length;
if(length >= size)
return str;
else
return str + Spaces.substring(0, size-length-1);
}
缺点是 padding 的 char 写死了,而且长度有限
当然啦,可以再改良,例如发现长度不足时再补充长度...
字元不对时重新产生新的 buffer...
这样就能跟 1 号的介面相容
不过要花的功就多很多了,划不划算要看跑什麽东西
updated:
加个 -server 参数,差距减少了:
godfat ~/p/t/padding>
time java -server Padding; time java -server Padding2; \
time java -server Padding3; time java -server Padding4
1.14 real 1.13 user 0.08 sys
4.28 real 4.20 user 0.13 sys
3.94 real 3.94 user 0.18 sys
0.88 real 0.89 user 0.07 sys
--
#!/usr/bin/env ruby [露比] /Programming (Kn|N)ight/ 看板《Ruby》
# if a
dog nailed
extra legs that
http://webptt.com/cn.aspx?n=bbs/Ruby/index.html
#
walks like an octopus, and Welcome ~
Ruby@ptt~
#
talks like an octopus, then
◢█◣ http://www.ruby-lang.org/
# we are happy to treat it as
█ http://www.ruby-doc.org/
# if it were
an octopus.
◥ ◤ http://www.rubyforge.org/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.135.28.18
※ 编辑: godfat 来自: 220.135.28.18 (04/27 03:20)
1F:推 silver8250:感谢您热情的回答!! 04/27 14:45