java中字符串切割的方法总结
StringTokenizer最快 ,基本已经不用了,除非在某些需要效率的场合。
Scanner最慢。
String和Pattern速度差不多。Pattern稍快些。 String和Pattern的split 方法效率相当,常用
- public static void main(String [] args){
- long start = System.currentTimeMillis();
- for ( int i= 0 ;i< 100000 ;i++){
- test1();
- }
- long end = System.currentTimeMillis();
- System.out.println("StringTokenzier: " +(end-start));
- start = System.currentTimeMillis();
- for ( int i= 0 ;i< 100000 ;i++){
- test2();
- }
- end = System.currentTimeMillis();
- System.out.println("Scanner: " +(end-start));
- start = System.currentTimeMillis();
- for ( int i= 0 ;i< 100000 ;i++){
- test3();
- }
- end = System.currentTimeMillis();
- System.out.println("String: " +(end-start));
- start = System.currentTimeMillis();
- for ( int i= 0 ;i< 100000 ;i++){
- test4();
- }
- end = System.currentTimeMillis();
- System.out.println("Pattern: " +(end-start));
- }
- //用StringTokenizer
- public static void test1(){
- String input = "This is 1 just a test" ;
- StringTokenizer st = new StringTokenizer(input);
- while (st.hasMoreTokens()){
- String s = st.nextToken();
- }
- }
- //用Scanner的方法
- public static void test2(){
- String input = "This is 1 just a test" ;
- Scanner scanner = new Scanner(input);
- scanner.useDelimiter(" " );
- while (scanner.hasNext()){
- String s = scanner.next();
- }
- }
- //用String的split方法
- public static void test3(){
- String input = "This is 1 just a test" ;
- String [] str = input.split(" " );
- for ( int i= 0 ;i<str.length;i++){
- String s = str[i];
- }
- }
- //用Pattern的方法
- public static void test4(){
- Pattern pattern = Pattern.compile(" " );
- String input = "This is 1 just a test" ;
- String [] str = pattern.split(input);
- for ( int i= 0 ;i<str.length;i++){
- String s = str[i];
- }
- }
- public static void main(String [] args){
- long start = System.currentTimeMillis();
- for(int i=0;i<100000;i++){
- test1();
- }
- long end = System.currentTimeMillis();
- System.out.println("StringTokenzier: "+(end-start));
- start = System.currentTimeMillis();
- for(int i=0;i<100000;i++){
- test2();
- }
- end = System.currentTimeMillis();
- System.out.println("Scanner: "+(end-start));
- start = System.currentTimeMillis();
- for(int i=0;i<100000;i++){
- test3();
- }
- end = System.currentTimeMillis();
- System.out.println("String: "+(end-start));
- start = System.currentTimeMillis();
- for(int i=0;i<100000;i++){
- test4();
- }
- end = System.currentTimeMillis();
- System.out.println("Pattern: "+(end-start));
- }
- //用StringTokenizer
- public static void test1(){
- String input = "This is 1 just a test";
- StringTokenizer st = new StringTokenizer(input);
- while(st.hasMoreTokens()){
- String s = st.nextToken();
- }
- }
- //用Scanner的方法
- public static void test2(){
- String input = "This is 1 just a test";
- Scanner scanner = new Scanner(input);
- scanner.useDelimiter(" ");
- while(scanner.hasNext()){
- String s = scanner.next();
- }
- }
- //用String的split方法
- public static void test3(){
- String input = "This is 1 just a test";
- String [] str = input.split(" ");
- for(int i=0;i<str.length;i++){
- String s = str[i];
- }
- }
- //用Pattern的方法
- public static void test4(){
- Pattern pattern = Pattern.compile(" ");
- String input = "This is 1 just a test";
- String [] str = pattern.split(input);
- for(int i=0;i<str.length;i++){
- String s = str[i];
- }
- }
运行了五次。输出结果如下:
- StringTokenzier: 110
- Scanner: 3281
- String: 453
- Pattern: 438
- StringTokenzier: 109
- Scanner: 3297
- String: 453
- Pattern: 438
- StringTokenzier: 110
- Scanner: 3265
- String: 485
- Pattern: 437
- StringTokenzier: 109
- Scanner: 3266
- String: 469
- Pattern: 437
- StringTokenzier: 109
- Scanner: 3297
- String: 469
- Pattern: 422
- StringTokenzier: 110
- Scanner: 3281
- String: 453
- Pattern: 438
- StringTokenzier: 109
- Scanner: 3297
- String: 453
- Pattern: 438
- StringTokenzier: 110
- Scanner: 3265
- String: 485
- Pattern: 437
- StringTokenzier: 109
- Scanner: 3266
- String: 469
- Pattern: 437
- StringTokenzier: 109
- Scanner: 3297
- String: 469
- Pattern: 422
StringTokenizer最快
Scanner最慢。
String和Pattern速度差不多。Pattern稍快些。
java中字符串切割的方法总结的更多相关文章
- 【转】Java中字符串中子串的查找共有四种方法(indexof())
原文网址:http://wfly2004.blog.163.com/blog/static/1176427201032692927349/ Java中字符串中子串的查找共有四种方法,如下:1.int ...
- Java中字符串中子串的查找共有四种方法(indexof())
Java中字符串中子串的查找共有四种方法(indexof()) Java中字符串中子串的查找共有四种方法,如下:1.int indexOf(String str) :返回第一次出现的指定子字符串在此字 ...
- Java中字符串的一些常见方法
1.Java中字符串的一些常见方法 /** * */ package com.you.model; /** * @author Administrator * @date 2014-02-24 */ ...
- Java中字符串indexof() 的使用方法
Java中字符串中子串的查找共有四种方法(indexof())indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置.如果没有找到子字符串,则返回-1.如果 startind ...
- 三张图彻底了解Java中字符串的不变性
转载: 三张图彻底了解Java中字符串的不变性 定义一个字符串 String s = "abcd"; s中保存了string对象的引用.下面的箭头可以理解为"存储他的引用 ...
- java中字符串String 转 int(转)
java中字符串String 转 int String -> int s="12345"; int i; 第一种方法:i=Integer.parseInt(s); 第二种方法 ...
- java中substring的使用方法
java中substring的使用方法 str=str.substring(int beginIndex);截取掉str从首字母起长度为beginIndex的字符串,将剩余字符串赋值给str: str ...
- [java,2017-05-16] java中清空StringBuffer的方法以及耗费时间比较
java中清空StringBuffer的方法,我能想到的有4种: 1. buffer.setLength(0); 设置长度为0 2. buffer.delete(0, buffer.length() ...
- Java中字符串string的数据类型
Java中字符串string的数据类型 时间:2017-07-03 08:01:47 YuanMxy 原文:https://blog.csdn.net/YuanMxy/article/details/ ...
随机推荐
- IntelliJ IDEA 14.x 创建工作空间与多个Java Web项目
以往的Eclipse.NetBeans等开发工具不同,IDEA的Project相当与Eclipse的Workspace,而Module相当于Project. 下边就给出Eclipse与IDEA的概念的 ...
- 【dynamic】简化反射简单尝试
最近在自己瞎整设计自己的数据访问层(纯属深入了解C#用),遇到了反射.网传反射性能很差,可是我们项目中也有功能用到了反射,总体来说还不错(小项目).由于居安思危的感觉越发沉重,不得不去打破传统,去寻求 ...
- Python 的格式化字符串format函数
阅读mattkang在csdn中的博客<飘逸的python - 增强的格式化字符串format函数>所做笔记 自从python2.6开始,新增了一种格式化字符串的函数str.format( ...
- easyui 汉化问题
遇到 easyui 需要汉化的 , 1: 找到 汉化文件 ,文件位于 插件的 locale 文件夹 内 easyui-lang-zh_CN.js 2: 将其 加载 与 easyui 之后 <s ...
- Git权威指南 读笔(4)
第12章 改变历史: $ git commit --amend -m "Remove hello.h, which is useless." 修改提交说明 $ git log -- ...
- 纯JavaScript实现一些小功能
题目链接:http://wenku.baidu.com/link?url=7Gbarr5q9X6h1QFRVAsHmfPp1xXagG209mvrJqBogseb4WLeRqbVKwxQieoh8SL ...
- BZOJ 1709: [Usaco2007 Oct]Super Paintball超级弹珠
Description 奶牛们最近从著名的奶牛玩具制造商Tycow那里,买了一套仿真版彩弹游戏设备(类乎于真人版CS). Bessie把她们玩游戏草坪划成了N * N(1 <= N<= 1 ...
- 用 Maven 做项目构建
转自:http://www.ibm.com/developerworks/cn/java/j-lo-maven/index.html 本文将介绍基于 Apache Maven 3 的项目构建的基本概念 ...
- DOM in Angular2
<elementRef> import {ElementRef} from "@angular/core"; constructor(private element: ...
- linux 性能分析常规逻辑和手段总结
一. 追查cpu占用较高的进程(线程) 1 . 如何查找出当前系统中占用cpu或者内存最高的进程? ps aux |sort -rn -k 3 |head -n3 查找出当前系统中cpu资源占用前三 ...