從獲得字符串中獲取數字


根據傳遞字符串得到double值或者int型

package com.shopping.test;

public class test {

    /**
     * 解析str,獲得其中的整數
     * @param str 待解析的str
     */
    private static int getIntValue(String str) {
        int r = 0;
        if (str != null && str.length() != 0) {
            StringBuffer bf = new StringBuffer();

            char[] chars = str.toCharArray();
            for (int i = 0; i < chars.length; i++) {
                char c = chars[i];
                if (c >= '0' && c <= '9') {
                    bf.append(c);
                } else if (c == ',') {
                    continue;
                } else {
                    if (bf.length() != 0) {
                        break;
                    }
                }
            }
            try {
                r = Integer.parseInt(bf.toString());
            } catch (Exception e) {
            }
        }
        return r;
    }

    /**
     * 解析字符串獲得雙精度型數值,
     * @param str
     * @return
     */
    private static double getDoubleValue(String str) {
        double d = 0;

        if (str != null && str.length() != 0) {
            StringBuffer bf = new StringBuffer();

            char[] chars = str.toCharArray();
            for (int i = 0; i < chars.length; i++) {
                char c = chars[i];
                if (c >= '0' && c <= '9') {
                    bf.append(c);
                } else if (c == '.') {
                    if (bf.length() == 0) {
                        continue;
                    } else if (bf.indexOf(".") != -1) {
                        break;
                    } else {
                        bf.append(c);
                    }
                } else {
                    if (bf.length() != 0) {
                        break;
                    }
                }
            }
            try {
                d = Double.parseDouble(bf.toString());
            } catch (Exception e) {
            }
        }

        return d;
    }

    public static void main(String[] args) {

        //1.5(參考代表值)
        String str1="1.5(參考代表值)";
       // String str1="0.730000019073486";
        double str1D = getDoubleValue(str1);
        System.out.println(str1+"->"+str1D);
        int i = getIntValue(str1);
        System.out.println(str1+"->"+i);

    }

}

 注意:這個方法只能獲取一個值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM