Java 字符串轉數字


字符串轉數字,全為數字不包含異常的字符,昨天去面試了,然后問了一個一個簡單的東西就是下面這個,寫起來沒有難度,但是好多細節沒注意到,
來回改什么的也寫了好幾遍,今天就記錄一下


public static double parseString(String str) {
        int count = '0';//忘記了ASCII碼數字之間相差多少 用'0' - 0 算之間差多少 然后每次用當前字符去減這個count
        if (null == str || "".equals(str))
        return 0;

        double value = 0;
        char[] chs = str.toCharArray();
        for (int i = 1; i < chs.length; i++) {//從1開始最后再判斷正負
        if (chs[i] == '.') {//如果是小數,單獨處理
        i++;
        value /= Math.pow(10, chs.length - i + 1 );
        for (int j = 0; i < chs.length; i++) {
        value += (chs[i] - count) * Math.pow(Math.pow(0.1,1), ++j);
        }
        break;
        }

        value += (chs[i] - count) * Math.pow(10, chs.length - 1 - i);
        }
        if (chs[0] == '-')
        value *= -1;
        else
        value += (chs[0] - count) * Math.pow(10, chs.length - 1);

        return value;
        }
public static void main(String[] args) {
        double value = parseString("-235678900765");
        System.out.println(value);
        value = parseString("2346424");
        System.out.println(value);
        value = parseString("-12");
        System.out.println(value);
        value = parseString("5678900765");
        System.out.println(value);
        value = parseString("-235765");
        System.out.println(value);

        value = parseString("-235765.123");
        System.out.println(value);
        }

 

 


免責聲明!

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



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