String to Integer(atoi)
Implement atoi to convert a string to an integer.
Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input cases.
Notes: It is intended for this problem to be specified vaguely (ie, no given input specs). You are responsible to gather all the input requirements up front.
LeetCode: https://oj.leetcode.com/problems/string-to-integer-atoi/题解:这道题总体来说还比较简单,不涉及算法;但需要考虑全面:字符串两边的空格,正负号,字符串的数值大小,是否超出整形所能表达的范围
public class Solution {
public int atoi(String str) {
if(str == null || str.length() == 0)
return 0;
double number = 0;
int flag = 1;
int i;
str = str.trim();
if(str.charAt(0) == '-'){
flag = -1;
str = str.substring(1);
}
else if(str.charAt(0) == '+'){
flag = 1;
str = str.substring(1);
}
for(i = 0;i < str.length(); i++){
if(str.charAt(i) >= '0' && str.charAt(i) <= '9'){
number = number*10 + (str.charAt(i) - '0');
}
else
break;
}
number = number * flag;
if(number > Integer.MAX_VALUE)
return Integer.MAX_VALUE;
if(number < Integer.MIN_VALUE)
return Integer.MIN_VALUE;
return (int) number;
}
}