問題:給定一個String,將其轉換爲Integer。
注:
1. 丟棄掉字符串前面的所有空格字符,直到遇到第一個非空格字符
2. 遇到第一個字符元素初始化整數的符號
3. 字符串可以包含其他字符,不影響字符的轉換,遇到非數字字符則停止轉換輸出整數
4. 如果轉化的整數超出整數的範圍,則輸出整數的最大值或者最小值
class Solution {
public int myAtoi(String str) {
if(str == null || str.length()<1){
return 0;
}
str = str.trim();
int flag = 1;
int i = 0;
//判斷符號
if(str.charAt(i)=='-'){
flag = -1;
i++;
}else if(str.charAt(i)=='+'){
i++;
}
long result = 0;
//字符轉換,判斷是否超出整數範圍
while(str.length()>i && str.charAt(i)>='0'&&str.charAt(i)<='9'){
result = result*10+(str.charAt(i)-'0');
if(result*flag>Integer.MAX_VALUE){
return Integer.MAX_VALUE;
}
if(result*flag<Integer.MIN_VALUE){
return Integer.MIN_VALUE;
}
i++;
}
return (int)result*flag;
}
}