Java StringTokenizer分割字符串
除了String本身的split方法,JDK在很早就提供了StringTokenizer这个类来分割字符串;
不过,由于正则表达式和String本身的功能越来越多,StringTokenizer已经被官方不建议使用了,至于原因,可参考stackoverflow上的一个问答:
http://stackoverflow.com/questions/6983856/why-is-stringtokenizer-deprecated
不过,它从jdk最初的版本一直存活到现在,总归有它存在的意义与价值,虽不建议使用,但了解总归是要了解的;
首先参考Oracle的官方文档:
http://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html
其中一个原因或许就是,单从性能上来说,它的性能要优于String的split吧,不过由于正则表达式的强大,导致StringTokenizer的功能方面相对薄弱了些;
public static void main(String[] args) {
Random random = new Random();
StringBuilder string = new StringBuilder();
for (int i = 0; i < 10000000; i++) {
string.append(" " + random.nextInt(1000));
}
long start = System.currentTimeMillis();
testStringTokenizer(string.toString());
long end = System.currentTimeMillis();
System.out.println("testStringTokenizer: " + (end - start) + "ms");
start = System.currentTimeMillis();
testStringSplit(string.toString());
end = System.currentTimeMillis();
System.out.println("testStringSplit: " + (end - start) + "ms");
}
public static String testStringTokenizer(String str) {
StringBuilder st = new StringBuilder();
StringTokenizer stringTokenizer = new StringTokenizer(str);
while (stringTokenizer.hasMoreTokens()) {
st.append(stringTokenizer.nextToken());
}
return st.toString();
}
public static String testStringSplit(String str) {
StringBuilder st = new StringBuilder();
String[] strs = str.split("\\s");
for (String string2 : strs) {
st.append(string2);
}
return st.toString();
}
对比结果:
testStringTokenizer: 476ms
testStringSplit: 2655ms
从代码层次上来看,的确是StringTokenizer要快些。
参考stackoverflow上的说法,不过具体详情可参考:https://www.cpe.ku.ac.th/~jim/java-io.html
StringTokenizer is not deprecated in fact StringTokenizer is 4X faster than String.split() and in competitive programming it is used by many developers.
参考内容有:
http://blog.csdn.net/songylwq/article/details/9016609
Java StringTokenizer分割字符串的更多相关文章
- java 竖线分割字符串的问题
java 竖线分割字符串的问题 例1: String[] paraStr = "6010;320100;A".split(";"); System.out.pr ...
- Java中分割字符串
java.lang.String 的 split() 方法, JDK 1.4 or later public String[] split(String regex,int limit) 示例代码 p ...
- 关于java中分割字符串
例子:String path = "123.456.789"; 如果要使用“.”将path分割成String[], path.split("//."); or ...
- Android--split()分割字符串特殊用法
split()分割字符串 1.不同环境下的区分 Java:分割字符串不能写成split("$")//$为要分割的字符Android:分割字符串需要加上中括号split(" ...
- Java StringTokenizer 类使用方法,字符串分割
Java StringTokenizer 属于 java.util 包,用于分隔字符串. StringTokenizer 构造方法: StringTokenizer(String str) :构造一个 ...
- Java开发笔记(三十七)利用正则串分割字符串
前面介绍了处理字符串的常用方法,还有一种分割字符串的场景也很常见,也就是按照某个规则将字符串切割为若干子串.分割规则通常是指定某个分隔符,根据字符串内部的分隔符将字符串进行分割,例如逗号.空格等等都可 ...
- java通过StringToKenizer获取字符串中的单词根据空格分离-简写版
public class StringToKenizer { public static void main(String[] args) { String strin = "Hello J ...
- java通过StringToKenizer获取字符串中的单词根据空格分离-详情版
public class DaXie { public static void main(String[] args) { String strin = "Hello Java World! ...
- js,java,jstl多分隔符分割字符串
1.js多分隔符 分割字符串 var username = “zhao,li;wang.liu”: var arr = str.split(/;|:|,|,|./); 括号里面可以写多分割符号,中英 ...
随机推荐
- Java注解的简单了解
部分信息来自<Thinking In Java> 注解也成为元数据.什么是元数据?就是“关于数据的数据” 注解为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后某个时刻非常方便 ...
- CoreText实现图文混排之点击事件
今天呢,我们继续把CoreText图文混排的点击事件补充上,这样我们的图文混排也算是圆满了. 哦,上一篇的链接在这里 http://www.jianshu.com/p/6db3289fb05d Cor ...
- IOS 开发 【objective-c 基础1】
案例:读取本地硬盘上程序根目录下words.txt文件内容,显示每行的字符数. // // main.m // hello // // Created by swack on 15/11/27. // ...
- MD5加密相关
demo效果
- Mac OS X 10.9 Mavericks 修改root密码
Mac10.9忘记密码后有两种方式可以进去: 代码如下 复制代码 1.sudo passwd 重新输入密码即可,此方法修改了root的密码 代码如下 复制代码 2.sudo bash 输入当前用户 ...
- sqlserver 将多行数据查询合并为一条数据
有这样一个需求:表T_FUN_TASK为任务表,有字段(TASKID,TASKNAME),表T_FUN_LOGBOOK为日志表,有字段(LOGID,TASKID,LOGDATE),一个任务可持续多天, ...
- AutoLayout适配
http://www.raywenderlich.com/113768/adaptive-layout-tutorial-in-ios-9-getting-started iOS布局和屏幕适配的一点总 ...
- 【USACO 1.5.2】回文质数
[题目描述] 因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围[a,b](5 <= a < b <= 100,0 ...
- MySQL分库分表环境下全局ID生成方案
在大型互联网应用中,随着用户数的增加,为了提高应用的性能,我们经常需要对数据库进行分库分表操作.在单表时代,我们可以完全依赖于数据库的自增ID来唯一标识一个用户或数据对象.但是当我们对数据库进行了分库 ...
- (转)ligerUI 使用教程之Tip介绍与使用
概述: ligertip是ligerUI系列插件中的tooltip类插件,作用是弹一个浮动层,起提示作用 阅读本文要求具备jQuery的基本知识,不然文中的javascript代码不易理解 截 ...