1. 程式人生 > >字串轉換為數字-Java版

字串轉換為數字-Java版

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;
	}
}