`
canofy
  • 浏览: 820989 次
  • 性别: Icon_minigender_1
  • 来自: 北京、四川
社区版块
存档分类
最新评论

三种判断字符串是否是数字性能的比较

    博客分类:
  • j2EE
阅读更多
不多说,下面是代码和结论:
package cn.test;

//import java.text.Character;


public class TestTryIf {
	/**
	 * 异常
	 * @param str
	 * @return
	 */
	public boolean testTry(String str){
//		String ret=str;
		try{
			Integer.parseInt(str);
		}catch(Exception e){
			return false;
//			ret="";
		}
		return true;
	}
	/**
	 * 转为byte类型
	 * @param str
	 * @return
	 */
	public boolean testByte(String str){
		byte[] by=str.getBytes();
//		String ret="";
		for(int i=0;i<by.length;i++){
			if(by[i]>47&&by[i]<58){//48-57为数字					
//				ret+=(char)by[i];
			}else{
				return false;
			}
		}
		return true;
	}
	/**
	 * 转换为char类型
	 * @param str
	 * @return
	 */
	public boolean testChar(String str){
		char[] ch=str.toCharArray();
//		String c="";
		for(int i=0;i<ch.length;i++){
			if(ch[i]>='0'&&ch[i]<='9'){
//				c+=ch[i];
//				System.out.println(ch[i]);
			}else{
				return false;
			}
		}
		return true;
	}
	/**
	 * 得到的结果是最后一种方法最快,即是转换成字符进行判断是最快的
	 * 好像有直接用某个类的方法直接进行判断,没有找到这个方法~~ ^—^
	 * @param args
	 */
	public static void main(String[] args){
		String ss="12345ss678902";
		TestTryIf tt=new TestTryIf();
		long ct1=System.currentTimeMillis();
		for(int i=0;i<100000;i++){
			tt.testTry(ss);
		}		
		long end1=System.currentTimeMillis();
		
		long ct2=System.currentTimeMillis();
		for(int i=0;i<100000;i++){
			tt.testByte(ss);
		}			
		long end2=System.currentTimeMillis();
		
		long ct3=System.currentTimeMillis();
		for(int i=0;i<100000;i++){
			tt.testChar(ss);
		}		
		long end3=System.currentTimeMillis();		
		
		System.out.println(end1-ct1);
		System.out.println(end2-ct2);
		System.out.println(end3-ct3);
		
	}
}

分享到:
评论

相关推荐

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) n(-84~127) 可以存储正数、负数、零、定点数和精度为38位的浮点数...

    Visual C++ 2005入门经典--源代码及课后练习答案

    4.1.4 字符数组和字符串处理 147 4.1.5 多维数组 150 4.2 间接数据存取 153 4.2.1 指针的概念 153 4.2.2 声明指针 154 4.2.3 使用指针 155 4.2.4 初始化指针 157 4.2.5 sizeof运算符 162 4.2.6 ...

    入门学习Linux常用必会60个命令实例详解doc/txt

    在使用mount这个指令时,至少要先知道下列三种信息:要加载对象的文件系统类型、要加载对象的设备名称及要将设备加载到哪个目录下。 (1)Linux可以识别的文件系统 ◆ Windows 95/98常用的FAT 32文件系统:vfat ;...

    delphi 开发经验技巧宝典源码

    0161 判断字符串是由数字、大写字母或小写字母组成 105 0162 判断字符串中的某一字符是否大写 106 0163 判断字符串中是否有小写字母 107 0164 判断字符串中是否有指定的字符 107 0165 判断字符是否可以转换...

    delphi 开发经验技巧宝典源码06

    0161 判断字符串是由数字、大写字母或小写字母组成 105 0162 判断字符串中的某一字符是否大写 106 0163 判断字符串中是否有小写字母 107 0164 判断字符串中是否有指定的字符 107 0165 判断字符是否可以转换...

    漂亮的验证码控件 下载添加到引用即可使用

    而现在流行的判断访问WEB程序是合法用户还是恶意操作的方式,就是采用 一种叫 "字符校验"的技术. WEB网站像现在的动网论坛,他采用达到方法是为客户提供一个包含随即字符串的图片,用户必须读取 这些字符串,然后随...

    SQL性能优化

     以上四个SQL在ORACLE分析整理之后产生的结果及执行的时间是一样的,但是从ORACLE共享内存SGA的原理,可以得出ORACLE对每个SQL 都会对其进行一次分析,并且占用共享内存,如果将SQL的字符串及格式写得完全相同则...

    C 语言编程常见问题解答.chm

    6.10 怎样判判断两个字符串是否相同? 第7章 指针和内存分配 7.1 什么是间接引用(indirection)? 7.2 最多可以使用几层指针? 7.3 什么是空指针? 7.4 什么时候使用空指针? 7.5 什么是void指针? 7.6...

    正则表达式

    这是通过在字符串 \ 后加一位或多位数字来实现的.数字指的是代括号的 子表达式在正则表达式中的位置.例如: \1 引用的是第一个代括号的子表达式. \3 引用的是第三个代括号的子表达式.注意,由于子表达式可以嵌套在...

    C语言编程要点

    6.10. 怎样判断两个字符串是否相同? 105 第7章 指针和内存分配 106 7.1. 什么是间接引用(indirection)? 107 7.2. 最多可以使用几层指针? 108 7.3. 什么是空指针? 110 7.4. 什么时候使用空指针? 110 7.5. 什么是void...

    最新Java面试宝典pdf版

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

    Java面试宝典2010版

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 5、说明生活中遇到的二叉树,用java实现二叉树 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复...

    python cookbook(第3版)

    2.20 字节字符串上的字符串操作 第三章:数字日期和时间 3.1 数字的四舍五入 3.2 执行精确的浮点数运算 3.3 数字的格式化输出 3.4 二八十六进制整数 3.5 字节到大整数的打包与解包 3.6 复数的数学运算 3.7...

    Java面试笔试资料大全

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

    ASP200问.EXE

    19.如何判断字符串是否以指定字符串开头或结尾 20.如何判断字符是否是英文字符 21.如何检测字符串出现的次数 22.如何过滤字符串中的HTML代码 23.如何截取字符串 24.如何实现字符串和数组的转换 25.如何实现字符大小...

    C#编程经验技巧宝典

    83 &lt;br&gt;0125 按要求生成指定位数编号 83 &lt;br&gt;0126 确定两字符串是否相等 84 &lt;br&gt;0127 判断两字符串中指定子串是否相等 84 &lt;br&gt;0128 判断字符串是否为日期格式 85 &lt;br&gt;0129 清除字符串中指定...

    Java面试宝典-经典

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

    JAVA面试宝典2010

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

    java面试题大全(2012版)

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

Global site tag (gtag.js) - Google Analytics