关注
你这个代码还可以再优化,遇到空格追加,使用stringbuilder,底层的实现是会执行多次resize操作。因此在数据量大的情况下,性能会降低下来。 //设置计算游标
int isr = 0;
//执行一次N的遍历
for (int i = 0; i < origionChars.length; i++) {
if (origionChars[i] == ' ') {
isr++;
}
}
//最后的新数组的大小
int newCapacity = origionChars.length + (isr * specifiedChars.length);
char[] newChars = new char[newCapacity];
for (int i = 0, j = 0; i < newCapacity && j < origionChars.length; i++) {
if (origionChars[j] == ' ') {
for (int t = 0; t < specifiedChars.length; t++) {
newChars[i++] = specifiedChars[t];
}
j++;
continue;
}
//正常迁移
newChars[i] = origionChars[j++];
}
return new String(newChars); 通过这种方式,只执行一次的resize,在1百万长度的字符下,效率提高两倍+!
10
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的求职总结 #
11032次浏览 199人参与
# 辞职之后最想做的一件事 #
7897次浏览 86人参与
# 毕业季,给职场新人一些建议 #
9705次浏览 189人参与
# 选offer应该考虑哪些因素 #
9190次浏览 128人参与
# 我的实习日记 #
2414881次浏览 25256人参与
# 工作后会跟朋友渐行渐远吗 #
20394次浏览 158人参与
# 你想留在一线还是回老家? #
36070次浏览 437人参与
# 你小时候最想从事什么职业 #
89956次浏览 1685人参与
# 设计人如何选offer #
107980次浏览 706人参与
# 毕业后不工作的日子里我在做什么 #
167588次浏览 1482人参与
# 生物制药/化工校招攻略 #
42606次浏览 282人参与
# 比亚迪求职进展汇总 #
703176次浏览 3059人参与
# 你们公司哪个部门最累? #
14152次浏览 118人参与
# 薪资爆料 #
101894次浏览 1038人参与
# 你们的毕业论文什么进度了 #
1013083次浏览 9505人参与
# 秋招想进国企该如何准备 #
56628次浏览 363人参与
# 招聘要求与实际实习内容不符怎么办 #
98125次浏览 717人参与
# 大学最后一个寒假,我想…… #
35399次浏览 454人参与
# 工作中的卑微时刻 #
8759次浏览 54人参与
# 第一份工作应该只看薪资吗 #
136779次浏览 1437人参与