字符串分割方式和查找方法比较
2016-04-27 11:42
225 查看
以下简单的介绍字符串分割的三种方式的不同点和速度
运行效果图:
public class StringSplit { public static void main(String[] args) { String orgStr = null; StringBuffer sb = new StringBuffer(); for (int i = 0; i < 10000; i++) { sb.append(i); sb.append(";"); } orgStr = sb.toString(); StringSplit ss = new StringSplit(); long beginTime = System.currentTimeMillis(); ss.split01(orgStr); long endTime = System.currentTimeMillis(); System.out.println("方法1用时:"+(endTime -beginTime)); beginTime = System.currentTimeMillis(); ss.split02(orgStr); endTime = System.currentTimeMillis(); System.out.println("方法2用时:"+(endTime -beginTime)); beginTime = System.currentTimeMillis(); ss.split03(orgStr); endTime = System.currentTimeMillis(); System.out.println("方法3用时:"+(endTime -beginTime)); } /** * 此方法运行时间 花费了3923ms,split()方法使用简单,功能强大,但是,在性能敏感的系统中频繁使用这个方法是不可取的 * @param str */ public void split01(String str){ for (int i = 0; i < 10000; i++) { str.split(";"); } } /** * 此方法运行时间花费了3721ms,即使在这段代码中StringTokenizer对象被不断创建并销毁,但其效率仍然明显高于split方法 * @param str */ public void split02(String str){ StringTokenizer st = new StringTokenizer(str,";"); for (int i = 0; i < 10000; i++) { while(st.hasMoreTokens()){ st.nextToken(); } st= new StringTokenizer(str,";"); } } /** * 使用indexOf()和subString()的算法仅仅花费了828ms,便 执行完成,其性能远远超过前两种方式,由这个方法可以看出, * 这种方式最适合作为高频函数使用。 * @param str */ public void split03(String str){ String tmp = str; for (int i = 0; i < 10000; i++) { while(true){ String splitStr = null ; int j = tmp.indexOf(";"); //找到分隔符的位置 if(j<0)break; //没有分隔符的存在 splitStr = tmp.substring(0,j);//找到分隔符,截取子符串 tmp = tmp.substring(j+1); //剩下需要处理的字符串 } tmp = str; } } }
运行效果图:
相关文章推荐
- 【leetcode】5. Longest Palindromic Substring
- 我的UML建模学习(一)
- 多线程Atomic和ThreadLocal
- 洞悉安卓应用的电池使用状况
- STS启动失败code=13
- To build the ruby runtime environment on Mac
- 洞悉安卓应用的电池使用状况
- Nginx+php+fastcgi在win7下的配置
- php 实现汉诺塔
- 获取窗口当前显示的控制器
- C#墨攻IOC
- websocket
- httpwebrequest详解
- Gitlab管理下本地Git配置
- Map集合中value()方法与keySet()、entrySet()区别
- AppDelegate中几个常用的回调调用时机
- linux 开机自动启动 shell
- java新手学习
- 用PS把自已或其他人照片放进玻璃瓶效果
- MyEclipse部署到tomcat上的项目名不是我更改后的项目名怎么解决