常用方式如下:

// 字符串取数
    public String stringGetNum(String str) {
        String str2 = "";
        if (str != null && !"".equals(str)) {
            for (int i = 0; i < str.length(); i++) {
                if ((str.charAt(i) >= 48 && str.charAt(i) <= 57) || str.charAt(i) == 46 || str.charAt(i) == 45) {
                    str2 += str.charAt(i);
                }
            }
            return str2;
        }
        return str;
    }

    public String stringGetEng(String str) {
        String str2 = "";
        if (str != null && !("".equals(str))) {
            for (int i = 0; i < str.length(); i++) {
                if ((str.charAt(i) <= 'z' && str.charAt(i) >= 'a') || (str.charAt(i) <= 'Z' && str.charAt(i) >= 'A')) {
                    str2 += str.charAt(i);
                }
            }
            return str2;
        }
        return str;
    }

    // 字符串取字符
    // 判断一个字符串是否是数字
    public boolean stringMatchesNum(String str) {
        String regex = "^(\\-|\\+)?\\d+(\\.\\d+)?$";
        boolean p = Pattern.matches(regex, str);
        return p;
    }

    // 判断一个字符串是否是十六进制数字
    public boolean stringMatchesHex(String str) {
        String regex = "^0[x|X][A-Fa-f0-9]{1,8}$";
        boolean p = Pattern.matches(regex, str);
        return p;
    }

    // 判断一个字符串是null或者是空字符串
    public boolean string_IsNull_Or_IsZeroLength(String str) {
        if (null == str || "".equals(str.trim())) {
            return true;
        } else {
            return false;
        }
    }

    // 判断一个字符串不为null不为空字符串
    public boolean string_NotNull_And_NotZeroLength(String str) {
        if (null != str && !("".equals(str.trim()))) {
            return true;
        } else {
            return false;
        }
    }

    // 判断一个字符串不为null不为空字符串并且是数字
    public boolean string_NotNull_And_NotZeroLength_And_MatchesNum(String str) {
        if (null != str && !("".equals(str.trim())) 
                && stringMatchesNum(str.trim())) {
            return true;
        } else {
            return false;
        }
    }

    // 判断一个字符串不为null不为空字符串并且是十六进制数字
    public boolean string_NotNull_And_NotZeroLength_And_MatchesHex(String str) {
        if (null != str && !("".equals(str.trim())) 
                && stringMatchesHex(str.trim())) {
            return true;
        } else {
            return false;
        }
    }

    // 获取一个字符串中的数字,字符串分成两侧,一侧是数字一侧是字符
    public String getStringMatchesNum(String str) {
        String DkValue = "";
        // 获取公里标前缀标识
        String regex = "(\\-|\\+)?\\d+(\\.\\d+)?";
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(str);

        if (m.find()) {
            // System.out.println("Found value: " + m.group() );
            DkValue = m.group().toString();
            return DkValue.trim();
        } else {
            // System.out.println("NO MATCH");
            return "";
        }
    }

// 获取公里标标识
    public String getDkName(String DisKilo) {
        // String a = "11aZDK41640.73a";
        String DkValue = "";
        // 获取公里标前缀标识
        String DkFlag = getDkFlag(DisKilo);
        String regex = "^.*" + DkFlag;
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(DisKilo);

        if (m.find()) {
            // System.out.println("Found value: " + m.group() );
            DkValue = m.group().toString();
            return DkValue.trim();
        } else {
            // System.out.println("NO MATCH");
            return "";
        }

    }

    // 获取公里标值
    public String getDkValue(String DisKilo) {
        // String a = "11aZDK41640.73a";
        String DkValue = "";
        // 获取公里标前缀标识
        String DkFlag = getDkFlag(DisKilo);
        String regex = "(?<=" + DkFlag + ").*$";
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(DisKilo);

        if (m.find()) {
            // System.out.println("Found value: " + m.group() );
            DkValue = m.group().toString();
            return DkValue.trim();
        } else {
            // System.out.println("NO MATCH");
            return "";
        }

    }

    // 获取公里标符号
    public String getDkFlag(String DistanceKilo) {
        // String a = "11aZDK41640.73a";
        String DkFlag = "";
        for (int i = 0; i < ldDkFlag.length; i++) {
            if (null != DistanceKilo && !"".equals(DistanceKilo.trim())) {
                if (DistanceKilo.contains(ldDkFlag[i])) {
                    DkFlag = ldDkFlag[i];
                    return DkFlag;
                }
            }
        }
        return DkFlag;
    }

11111