您的位置:首页 > 编程语言 > Java开发

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

2013-06-28 23:50 1406 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: