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. INSTR代替NOT LIKE

    instr(title,'手册')>0  相当于  title like '%手册%' instr(title,'手册')=1  相当于  title like '手册%' instr(titl ...

  2. jQuery中keyup() 和 keydown()方法

    kuydown()方法与上方用法一样:一个按键松开执行代码,一个按键按下执行.

  3. Yii2 kineditor

    用 kineditor实现异步 <table cellspadding=5 width=400> <tr height='150'> <td valign="t ...

  4. project 计划添加编号或 任务分解时为任务添加编号

    [工具]-[选项]-[视图]-选择[显示大纲数字]-[确定]

  5. 空间日志编辑器:word文档图文快速粘贴到web

    百度ueditor可以实现word文档图文快速粘贴到web 1.4.2之后官方并没有做功能的改动,1.4.2在word复制这块没有bug,其他版本会出现手动无法转存的情况 本文使用的后台是Java.前 ...

  6. 洛谷P3372/poj3468(线段树lazy_tag)(询问区间和,支持区间修改)

    洛谷P3372 //线段树 询问区间和,支持区间修改 #include <cstdio> using namespace std; struct treetype { int l,r; l ...

  7. AT2705 Yes or No(组合数学)

    传送门 解题思路 首先将这个模型放到坐标轴上,\(x\)轴表示\(1\),\(y\)轴表示\(0\).问题就转化成了从\((0,0)\)走到\((n,m)\),每次可以猜测向\(x\)轴或向\(y\) ...

  8. RabbitMQ的简单应用【转】

    虽然后台使用了读写分离技术,能够在一定程度上抗击高并发,但是如果并发量特别巨大时,主数据库不能同时处理高并发的请求,这时数据库容易宕机. 问题: 现在的问题是如何既能保证数据库正常运行,又能实现用户数 ...

  9. 7 November in 614

    每日总结不能少!让自己的头脑好好清醒清醒,才不会犯那些所谓的低级错误! Contest A. ssoj3045 A 先生砍香蕉树 根据数据范围 \(m\le 1000,b\le 10000\),显然本 ...

  10. Design:设计目录

    ylbtech-Design:设计目录 1.返回顶部 1.0 蚂蚁设计 https://design.alipay.com 1.1 Ant Design - 一个 UI 设计语言 https://an ...