请教3种分割字符串方法的效率问题

云想慕尘 云想慕尘 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
3种常用的分割方法,按道理讲应该是最下面一种效率最高,但实际测试发现第3种竟然最低,求原因
String str = null;
/**
* 生成一个字符串
*/
public MySplit() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1000; i++) {
sb.append(i);
sb.append(";");
}
str = sb.toString();
}

/**
* 使用split分割
*/
public void strSplit() {
for (int i = 0; i < 10; i++) {
str.split(";");
}
}

/**
* 使用StringTokenizer类分割
*/
public void strTokenizer() {
StringTokenizer st = new StringTokenizer(str, ";");
for (int i = 0; i < 10; i++) {
while (st.hasMoreTokens())
st.nextToken();
st = new StringTokenizer(str, ";");
}
}

/**
* 使用indexOf和substring手工编码方式分割
*/
public void strIndexOf() {
String tmp = str;
for (int i = 0; i < 10; i++) {
while (true) {
int idx = tmp.indexOf(';');
if (idx < 0)
break;
tmp = new String(tmp.substring(idx + 1));
}
tmp = str;
}
}
...全文

相关推荐

评论 24
收藏 已收藏
分享
返回顶部
云想慕尘
Java SE 62,621 成员 307,251 内容