a29343539 發表於 2018-2-13 21:01:48

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)+";
                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

頁: [1]
查看完整版本: java 判斷字符串是否為數字十進制十六進制