Java 實現把字串轉換成整數
阿新 • • 發佈:2019-02-05
將一個字串轉換成一個整數,要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是一個合法的數值則返回0 。
輸入一個字串,包括數字字母符號,可以為空;
輸入一個字串,包括數字字母符號,可以為空;
如果是合法的數值表達則返回該數字,否則返回0;
程式碼
public static int parseString2Int(String str) { if (Strings.isNullOrEmpty(str)) { return 0; } // 數字的正負,預設是正數 int symbol = 1; char[] array = str.toCharArray(); int sum = 0; // 如果第一位是'-',說明結果應該是個負數,'+'不需要處理symbol // 同時替換該位置上的字元為0,這樣在下面的處理中,可以認為是跳過該字元 // 因為0 * 10還是0 if (array[0] == '-') { symbol = -1; array[0] = '0'; } else if (array[0] == '+') { array[0] = '0'; } for (int i = 0; i < array.length; i++) { // 如果不是數字,而是其他字母符號一類非數字字元,則直接返回0 if (array[i] < '0' || array[i] > '9') { return 0; } // sum * 10是為了將當前已獲得數字整體左移一位,讓新的數字可以處於個位上,比如"12" // 第一次拿出1,在第二次拿出2的時候,1應該在十位上,2在個位上,所以 1 * 10 + 2 = 12 // array[i] - '0',這裡減去字元'0',是因為字元'0'-'9'的ascii碼值與其對應的數字相差48,而'0'的ascii碼值正好是48 sum = sum * 10 + array[i] - '0'; } return sum * symbol; } public static void main(String[] args) { int result = parseString2Int("123"); System.out.println(result); }