字串轉換為數字-Java版
阿新 • • 發佈:2019-02-04
package po.ag; /** * 1.首先判斷字串是否為空,若為空,返回0 * 2.考慮前面的是否是空格,使用trim()去掉,然後判斷長度是否為0,若是,返回0 * 3.判斷第一個字元是不是+或者-,設定變數sign記錄 * 4.迴圈取得字串的數字,考慮字串中有非數字,遇到就退出,保留前面的數字 * 5.考慮溢位的情況,溢位返回Integer的最大值或最小值 */ public class StringToNumber { public static int stringToNumber(String str) { //首先判斷空值 if(str == null) { return 0; } //去掉空格的情況 str = str.trim(); if(str.length() == 0) return 0; //正負數標識 int sign = 1; int index = 0; if(str.charAt(index) == '+') index++; else if(str.charAt(index) == '-') { index++; sign = -1; } //取得數字部分,遇到溢位和非數字退出 long number = 0; for(; index < str.length(); index++) { if(str.charAt(index) < '0' || str.charAt(index) > '9') break; number = number * 10 + (str.charAt(index) - '0'); if(number >= Integer.MAX_VALUE) break; } if(number * sign <= Integer.MIN_VALUE) return Integer.MIN_VALUE; if(number * sign >= Integer.MAX_VALUE) return Integer.MAX_VALUE; return (int) number * sign; } }