2019独角兽企业重金招聘Python工程师标准>>>

Java Tips: 使用Pattern.split替代String.split

String.split方法很常用,用于切割字符串,split传入的参数是正则表达式,它的内部是每次都comiple正则表达式,再调用Pattern.split方法:

public String[] split(String regex, int limit) {return Pattern.compile(regex).split(this, limit);
}public String[] split(String regex) {return split(regex, 0);
}

因此,如果你调用String.split非常频繁的话,每次都重新编译正则表达式的代价很高,性能会受到很大影响,

此时最好自己预编译Pattern,再调用Pattern.split方法为妙。

String []items=line.split(" ");//替代为static Pattern pattern=Pattern.compile(" ");String []items=pattern.split(line,0);

注意:如果你根本没想过用正则来split的话,StringTokenizer性能更高

Java学习笔记--StringTokenizer的使用

StringTokenizer是一个用来分隔String的应用类

1. 构造函数。

1. StringTokenizer(String str) :构造一个用来解析str的StringTokenizer对象。java默认的分隔符是“空格”、“制表符(‘\t’)”、“换行符(‘\n’)”、“回车符(‘\r’)”。
2. StringTokenizer(String str, String delim) :构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符。
3. StringTokenizer(String str, String delim, boolean returnDelims) :构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符,同时,指定是否返回分隔符。

2.  方法简介

int       countTokens():返回nextToken方法被调用的次数。如果采用构造函数1和2,返回的就是分隔符数量
boolean   hasMoreElements():返回是否还有分隔符。
boolean   hasMoreTokens():同上
String  nextToken():返回从当前位置到下一个分隔符的字符串。
Object      nextElement():结果同上,除非生命返回的是Object而不是String
String       nextToken(String delim):同nextToken(),以指定的分隔符返回结果

例:

String s = new String("This is a test string");
StringTokenizer st = new StringTokenizer(s);
System.out.println( "Token Total: " + st.countTokens() );
while( st.hasMoreElements() ){System.out.println(st.nextToken());
}

例2:

String str = "100|66,55:200|567,90:102|43,54";StringTokenizer strToke = new StringTokenizer(str, ":,|");// 默认不打印分隔符
// StringTokenizer strToke=new StringTokenizer(str,":,|",true);//打印分隔符
// StringTokenizer strToke=new StringTokenizer(str,":,|",false);//不打印分隔符
while(strToke.hasMoreTokens()){System.out.println(strToke.nextToken());
}
 

注意,StringTokenizer的分隔符不需要使用转义字符

3.与split的区别

String.Split()使用正则表达式,而StringTokenizer的只是使用逐字分裂的字符。
如果不用正则表达式(StringTokenizer也不能使用正则表达式),StringTokenizer在截取字符串中的效率最高。

转载于:https://my.oschina.net/dylan2hdf/blog/1501276

Java学习笔记--StringTokenizer的使用相关推荐

  1. Java学习笔记(原创)

    Java学习笔记(原创) 2011-12-01 16:37:00|  分类: Java|举报|字号 订阅 下载LOFTER客户端 基本知识 一. Java基础 1. java语言的特点: ①简单:没有 ...

  2. java学习笔记11--Annotation

    java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...

  3. java学习笔记13--反射机制与动态代理

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...

  4. 准备写java学习笔记

    准备写java学习笔记 java int 转载于:https://blog.51cto.com/cryingcloud/1975267

  5. java学习笔记12--异常处理

    java学习笔记系列: java学习笔记11--集合总结 java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 j ...

  6. Java学习笔记(十)--控制台输入输出

    输入输出 一.控制台输入 在程序运行中要获取用户的输入数据来控制程序,我们要使用到 java.util 包中的 Scanner 类.当然 Java 中还可以使用其他的输入方式,但这里主要讲解 Scan ...

  7. java学习笔记16--I/O流和文件

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理 ...

  8. java学习笔记15--多线程编程基础2

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡 ...

  9. java学习笔记14--多线程编程基础1

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为 ...

最新文章

  1. Python反爬机制介绍
  2. 网学天地计算机组成与原理试题,哈工大2007年秋季学期计算机组成原理期末试题...
  3. 深入理解Spring Redis的使用 (五)、常见问题汇总
  4. 2005年2月24日(星期四) 中午,晴+煙 - Central Incubator。
  5. Fedora安装Mariadb数据库
  6. Android 系统性能优化(45)---Android 多线程
  7. Mybatis_day4_Mybatis的注解开发
  8. 流水线、精益生产、丰田生产方式和TOC的基本原则
  9. 在Fedora8上配置Apache Httpd
  10. Java遇见HTML——JSP篇之JSP内置对象(下)
  11. linux设置自动清除内存碎片
  12. 【视频分享】尚硅谷Oracle视频教程
  13. 一个由2020年1月7日 京东出现的重大 Bug 漏洞引起的思考...
  14. 初创期企业运营必备手册-工具包-绩效考核方法工具包
  15. 买苹果配件什么最靠谱 认识苹果MFi认证
  16. css线条伸缩_CSS3弹性伸缩布局(上)——box布局
  17. Java提取URL某个参数的值
  18. 第十五章 输入输出系统
  19. Android 音视频开发实践系列-04-Android WebRTC推流到SRS服务器实现直播功能
  20. Cesium(九)鹰眼功能

热门文章

  1. matlab生成wav文件并用python验证
  2. hdfs.DFSClient: Exception in createBlockOutputStream
  3. awk 添加自定义变量
  4. word2vec 中的数学
  5. C++ explicit关键字详解(转载)
  6. DB2命令行查看执行计划
  7. # 利用fragment实现界面跳转
  8. putty完全使用手册--多窗口---git提交---连接数据库--自动日志显示
  9. 表中重复记录的一些常用脚本
  10. 对‘pthread_create’未定义的引用_【学习贴士】引用文献不积极,APA Guideline 帮助你...