作者superlubu (劲过吕布)
看板java
标题Re: [问题] 请问如何有效率的将字串首字改大写?
时间Thu Jun 21 16:49:26 2007
※ 引述《archerlin ()》之铭言:
: 恩 感恩 采用CharArray 程式继续往下写罗...
: 会问这基本的正是因为我JSP网页大约有50~60万左右个字串要即时这样改
: 想问问看速度快点的写法
: 能省一点时间算一点,user才不会等太久 (我那支捞SQL就要超久了,能省则省XD)
: 我也顺手简测了一下 各跑50万次
: 我的方法1最烂 大约要1s
: 我的方法2 大约要280ms
: StringBuilder 大约要200ms左右 (应该是省space)
: CharArray 大约要70ms左右
: 果然小地方运算还是用愈primitive type愈快阿...用太多加工的方法只是愈慢 XD
要是你真的有这样的用法... 可以试用这个:
tmp = "atestingstring";
char[] charAry2 = new char[20];
for (int i=0; i<600000; i++) {
int size = tmp.length();
tmp.getChars(0, size, charAry2, 0);
charAry2[0] = Character.toUpperCase(charAry2[0]);
tmp2 = String.valueOf(charAry2, 0, size);
}
charAry2 是一个够大,用作 buffer 的东西,所有这个换大小写的工作都用它...
於是系统不需要每一次都先找一个空间来做 toCharArray() ....
是会有快一丁丁丁丁点啦....
(重覆 60 万次计算: Version 1 是 78~94ms, Version 2 是 63~78ms)
不过好像会令到 coding 变得有点乱 XD 完全是为了效能牺牲了维护 :P
而且 charAry2 的长度设定有点微妙,必需够大而不能过大 XDrz
--
很多人以为 所以我要 其实我是个快
我是
大学生 告诉大家 三十岁的
怪叔叔
● ●/ ︿ ︿
/
劲\ <
劲 ●
ㄨ /\ ㄨ
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 147.8.130.225