java--split,index,StringTokenizer比较
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比较的更多相关文章
- Java split方法源码分析
Java split方法源码分析 public String[] split(CharSequence input [, int limit]) { int index = 0; // 指针 bool ...
- 关于split与StringTokenizer的理解
关于split与StringTokenizer的理解 一.split 依据匹配给定的正則表達式来拆分此字符串.此方法返回的数组包括此字符串的子字符串,每一个子字符串都由还有一个匹配给定表达式的子 ...
- Java split用法
Java split用法 java.lang.string.split split 方法 将一个字符串分割为子字符串,然后将结果作为字符串数组返回. stringObj.split([separat ...
- Java split(".") 和 split("\\.")
Java split(".") 和 split("\\.") 问题描述 使用 . 分解 IP 的各个段,并打印,如:192.168.10.123,分解为 192 ...
- java中subString、split、stringTokenizer三种截取字符串方法的性能比较(转)
最近在阅读java.lang下的源码,读到String时,突然想起面试的时候曾经被人问过:都知道在大数据量情况下,使用String的split截取字符串效率很低,有想过用其他的方法替代吗?用什么替代? ...
- java字符串分解 StringTokenizer用法(比split()方法效率高)
Java中substring方法可以分解字符串,返回的是原字符串的一个子字符串.如果要讲一个字符串分解为一个一个的单词或者标记,StringTokenizer可以帮你. int countTokens ...
- Java学习笔记--StringTokenizer的使用
拓展:Pattern.split替代String.split http://www.cnblogs.com/gnivor/p/4386978.html StringTokenizer是一个用来分隔St ...
- java split进行字符串分割
在java.lang包中有String.split()方法,返回是一个数组 我在应用中用到一些,给大家总结一下,仅供大家参考: 1.如果用"."作为分隔的话,必须是如下写法,Str ...
- Java Split以竖线作为分隔符
今天用到了Java中的Split函数,要以“|”作为分割符,当输入竖线时,发现出错,这个问题应该很久前就遇到过,不过太长时间就给忘了! 网上一搜,就找到了答案,这是因为split里面有两个参数,其中一 ...
随机推荐
- 一次Linux服务器空间满的随笔解决记录
昨天突然无法上传文件到服务器上的,FTP工具总是到99%就卡住了.查了一下说可能是服务器满了. 赶紧用 df -h 命令查看空间使用情况.果然100%了. 想想上次查询才不到50%,怎么突然就满了了呢 ...
- TJU 4072 3D Birds-Shooting Game
4072. 3D Birds-Shooting Game Time Limit: 3.0 Seconds Memory Limit: 65536K Total Runs: 167 Acce ...
- Codeforces 499C:Crazy Town(计算几何)
题目链接 给出点A(x1,y1),B(x2,y2),和n条直线(ai,bi,ci,aix + biy + ci = 0),求A到B穿过多少条直线 枚举每条直线判断A.B是否在该直线两侧即可 #incl ...
- docker 报错端口被占用 sqlserver 占用80端口
本想开启个容器,却发现有程序居然占用了我的80端口 C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response fr ...
- 【Eureka】实现原理
Eureka Client 拉取Eureka Server中的全量注册表 注册自身实例InstanceInfo至Eureka Server 初始化定时任务 心跳(续约)任务 拉取增量注册表更新本地注册 ...
- 报错——selinux配置文件修改错误导致无法启动虚拟机
selinux配置文件修改错误导致无法启动虚拟机 问题 错误修改配置文件 [root@centos73 ~]# cat /etc/selinux/config # This file controls ...
- Web项目改名的带来的404not found问题
为了保留上一次编辑的billsys web项目,把项目复制一份到同一个工作空间后,对原来项目名进行了重命名,如右图: 结果再去访问,一直报404错误 解决思路如下: 其实仔细观察,会在项目部署界面发现 ...
- .NET Core 构建跨平台的桌面应用
1.运行环境 开发工具:Visual Studio 2017 JDK版本:.NET Core 2.0 项目管理工具:nuget 2.GITHUB地址 https://github.com/nbfujx ...
- Linux 删除特殊文件名的文件
1.文件名含有特殊字符: 1) 执行 ls -i 命令 ,文件前面会出现一个数字,这个数字是文件的节点号 2) 使用find命令删除 find ./ -inum 节点号 -delete 2.文件名是以 ...
- identityserver4踩坑总结
1.在配置id4服务端的时候要注意client里面的 AllowedScopes开放的值要和GetIdentityResources中加入的值是一样的,不然调用以后报{"error" ...