import java.util.StringTokenizer;

public class SplitDemo {
//jdk8
public static void main(String[] args){
String s = "a,b,c";
String[] split = s.split(",");
for (String s1 : split) {
System.out.println(s1);
}
StringTokenizer st = new StringTokenizer(s,",");
while (st.hasMoreTokens()){
String s1 = st.nextToken();
System.out.println(s1);
}
String s2 = "a,b,c";
while (true){
int i = s2.indexOf(",");
if (i < 0 && s2.length()<0){
break;
}
if (i < 0){
System.out.println(s2);
break;
}else {
System.out.println(s2.substring(0,i));
s2 = s2.substring(i+1);
}
} testSplit();
testStringTokenizer();
testIndexOf();
//split-598
//StringTokenizer-38
//indexOf-4577
}
public static void testSplit(){
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 1000; i++) {
sb.append(i);
if (i < 999){
sb.append(",");
}
}
String str = sb.toString();
long begin = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
str.split(",");
}
long end = System.currentTimeMillis();
System.out.println("split" + (end-begin));
}
public static void testStringTokenizer(){
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 1000; i++) {
sb.append(i);
if (i < 999){
sb.append(",");
}
}
String str = sb.toString();
long begin = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
StringTokenizer st = new StringTokenizer(str);
while (st.hasMoreTokens()){
st.nextToken();
}
st = new StringTokenizer(str);
}
long end = System.currentTimeMillis();
System.out.println("StringTokenizer" + (end-begin));
}
public static void testIndexOf(){
String s = null;
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 1000; i++) {
sb.append(i);
if (i < 999){
sb.append(",");
}
}
s = sb.toString();
String str = s;
long begin = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
while (true){
int a = str.indexOf(",");
if (a < 0){
break;
}
str = str.substring(a+1);
}
str = s;
}
long end = System.currentTimeMillis();
System.out.println("indexOf" + (end-begin));
}
}

java--split,index,StringTokenizer比较的更多相关文章

  1. Java split方法源码分析

    Java split方法源码分析 public String[] split(CharSequence input [, int limit]) { int index = 0; // 指针 bool ...

  2. 关于split与StringTokenizer的理解

    关于split与StringTokenizer的理解 一.split    依据匹配给定的正則表達式来拆分此字符串.此方法返回的数组包括此字符串的子字符串,每一个子字符串都由还有一个匹配给定表达式的子 ...

  3. Java split用法

    Java split用法 java.lang.string.split split 方法  将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separat ...

  4. Java split(".") 和 split("\\.")

    Java split(".") 和 split("\\.") 问题描述 使用 . 分解 IP 的各个段,并打印,如:192.168.10.123,分解为 192 ...

  5. java中subString、split、stringTokenizer三种截取字符串方法的性能比较(转)

    最近在阅读java.lang下的源码,读到String时,突然想起面试的时候曾经被人问过:都知道在大数据量情况下,使用String的split截取字符串效率很低,有想过用其他的方法替代吗?用什么替代? ...

  6. java字符串分解 StringTokenizer用法(比split()方法效率高)

    Java中substring方法可以分解字符串,返回的是原字符串的一个子字符串.如果要讲一个字符串分解为一个一个的单词或者标记,StringTokenizer可以帮你. int countTokens ...

  7. Java学习笔记--StringTokenizer的使用

    拓展:Pattern.split替代String.split http://www.cnblogs.com/gnivor/p/4386978.html StringTokenizer是一个用来分隔St ...

  8. java split进行字符串分割

    在java.lang包中有String.split()方法,返回是一个数组 我在应用中用到一些,给大家总结一下,仅供大家参考: 1.如果用"."作为分隔的话,必须是如下写法,Str ...

  9. Java Split以竖线作为分隔符

    今天用到了Java中的Split函数,要以“|”作为分割符,当输入竖线时,发现出错,这个问题应该很久前就遇到过,不过太长时间就给忘了! 网上一搜,就找到了答案,这是因为split里面有两个参数,其中一 ...

随机推荐

  1. 21.使用LinkedBlockingQueue模拟生产者与消费者

    import java.util.concurrent.BlockingQueue; import java.util.concurrent.TimeUnit; import java.util.co ...

  2. java知识链接

    Java内存模型简称jmm: 它定义了一个线程对另一个线程是可见的,另外就是共享变量的概念,因为Java内存模型又叫做共享内存模型,也就是多个线程会同时访问一个变量,这个变量又叫做共享变量, 共享变量 ...

  3. ajax处理返回的三种格式(json格式 , xml通用格式 , html文本格式)(数据类型:整数、字符串、数组、对象)(基础最重要!)

    ajax方法的参数 常用的ajax参数比如url,data,type,包括预期返回类型dataType,发送到服务器的数据的编码类型contentType,成功方法,失败方法,完成方法.除了这些以外还 ...

  4. less和vim中使用正则表达式搜索

    使用less查看 txt 文件之后,按\可以正则表达式来搜索: less phonelist.txt (232) 298-2265 (624) 381-1078 (540) 126-1980 (874 ...

  5. python不能运行

    运行python文件出现,报错please select a valid interpreter 这是因为没有选择interpreter  就是更改目录时需要重新选择pytho解析器 解决方法如下 更 ...

  6. wnmp的配置

    第一部分:准备工作.(系统:Windows 8.1) 1.首先是下载软件. NGINX-1.3.8官网下载:http://nginx.org/en/download.html PHP5.4.8版本下载 ...

  7. delphi 判断MDI窗体的子窗体是否存在

    //***************************************************************************//函 数名: CreateForm //返 ...

  8. 启动Nginx、查看nginx进程、nginx帮助命令、Nginx平滑重启、Nginx服务器的升级

    1.启动nginx的方式: cd /usr/local/nginx ls

  9. tomcat启动前端项目

    前后端分离项目,前端使用vue,部署启动前端项目可以使用NodeJS,Nginx,Tomcat. *)使用Tomcat部署启动: 1.把vue项目build生成的dist包,放到Tomcat的weba ...

  10. (转)超详细java中的ClassLoader详解

    转:https://blog.csdn.net/briblue/article/details/54973413 ClassLoader翻译过来就是类加载器,普通的java开发者其实用到的不多,但对于 ...