java 判断字符串是否为数字 十进制 十六进制

package com.regex.first;

/**
* @ClassName: regexTest1
* @Description: java判断字符串是否为数字。
* @author amosli
* @date 2013-6-28 下午11:46:50
* @Email:amosli@infomorrow.com
*/ 
public class RegexNumberValidate {
	public static void main(String[] args){
		String[] values = new String[]{
				"10","32768","9999","ati","905Af","ffff"
		};
		for(String value:values){
			System.out.println("Validating value:\t"+value);
			if(isOctNumberRex(value)){
				System.out.println("this is a Octnumber:"+value);
			}else {
				System.out.println("this isn't a Octnumber:"+value);
			}
			if(isHexNumberRex(value)){
				System.out.println("this is a Hexnumber:"+value);
			}else {
				System.out.println("this isn't Hexnumber:"+value);
			}
		}
	}
	//十进制
	private static boolean isOctNumber(String str) {
		boolean flag = false;
		for(int i=0,n=str.length();i<n;i++){
			char c = str.charAt(i);
			if(c=='0'|c=='1'|c=='2'|c=='3'|c=='4'|c=='5'|c=='6'|c=='7'|c=='8'|c=='9'){
				flag =true;
			}
		}
		return flag;
	}
	//十六进制
	private static boolean isHexNumber(String str){
		boolean flag = false;
		for(int i=0;i<str.length();i++){
			char cc = str.charAt(i);
			if(cc=='0'||cc=='1'||cc=='2'||cc=='3'||cc=='4'||cc=='5'||cc=='6'||cc=='7'||cc=='8'||cc=='9'||cc=='A'||cc=='B'||cc=='C'||
					cc=='D'||cc=='E'||cc=='F'||cc=='a'||cc=='b'||cc=='c'||cc=='c'||cc=='d'||cc=='e'||cc=='f'){
				flag = true;
			}
		}
		return flag;
	}
	
	private static boolean isOctNumberRex(String str){
		String validate = "\\d+";
		return str.matches(validate);
	}
	private static boolean isHexNumberRex(String str){
		String validate = "(?i)[0-9a-f]+";
		return str.matches(validate);
	}
}
/*************print***********************/
Validating value:    10
this is a Octnumber:10
this is a Hexnumber:10
Validating value:    32768
this is a Octnumber:32768
this is a Hexnumber:32768
Validating value:    9999
this is a Octnumber:9999
this is a Hexnumber:9999
Validating value:    ati
this isn't a Octnumber:ati
this is a Hexnumber:ati
Validating value:    905Af
this is a Octnumber:905Af
this is a Hexnumber:905Af
Validating value:    ffff
this isn't a Octnumber:ffff

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值