Java学习笔记--StringTokenizer的使用
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的使用相关推荐
- Java学习笔记(原创)
Java学习笔记(原创) 2011-12-01 16:37:00| 分类: Java|举报|字号 订阅 下载LOFTER客户端 基本知识 一. Java基础 1. java语言的特点: ①简单:没有 ...
- java学习笔记11--Annotation
java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...
- java学习笔记13--反射机制与动态代理
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...
- 准备写java学习笔记
准备写java学习笔记 java int 转载于:https://blog.51cto.com/cryingcloud/1975267
- java学习笔记12--异常处理
java学习笔记系列: java学习笔记11--集合总结 java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 j ...
- Java学习笔记(十)--控制台输入输出
输入输出 一.控制台输入 在程序运行中要获取用户的输入数据来控制程序,我们要使用到 java.util 包中的 Scanner 类.当然 Java 中还可以使用其他的输入方式,但这里主要讲解 Scan ...
- java学习笔记16--I/O流和文件
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input Output)流 IO流用来处理 ...
- java学习笔记15--多线程编程基础2
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡 ...
- java学习笔记14--多线程编程基础1
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为 ...
最新文章
- Python反爬机制介绍
- 网学天地计算机组成与原理试题,哈工大2007年秋季学期计算机组成原理期末试题...
- 深入理解Spring Redis的使用 (五)、常见问题汇总
- 2005年2月24日(星期四) 中午,晴+煙 - Central Incubator。
- Fedora安装Mariadb数据库
- Android 系统性能优化(45)---Android 多线程
- Mybatis_day4_Mybatis的注解开发
- 流水线、精益生产、丰田生产方式和TOC的基本原则
- 在Fedora8上配置Apache Httpd
- Java遇见HTML——JSP篇之JSP内置对象(下)
- linux设置自动清除内存碎片
- 【视频分享】尚硅谷Oracle视频教程
- 一个由2020年1月7日 京东出现的重大 Bug 漏洞引起的思考...
- 初创期企业运营必备手册-工具包-绩效考核方法工具包
- 买苹果配件什么最靠谱 认识苹果MFi认证
- css线条伸缩_CSS3弹性伸缩布局(上)——box布局
- Java提取URL某个参数的值
- 第十五章 输入输出系统
- Android 音视频开发实践系列-04-Android WebRTC推流到SRS服务器实现直播功能
- Cesium(九)鹰眼功能
热门文章
- matlab生成wav文件并用python验证
- hdfs.DFSClient: Exception in createBlockOutputStream
- awk 添加自定义变量
- word2vec 中的数学
- C++ explicit关键字详解(转载)
- DB2命令行查看执行计划
- # 利用fragment实现界面跳转
- putty完全使用手册--多窗口---git提交---连接数据库--自动日志显示
- 表中重复记录的一些常用脚本
- 对‘pthread_create’未定义的引用_【学习贴士】引用文献不积极,APA Guideline 帮助你...