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.
?
public class Solution { /* * 注意考虑正负号、溢出、非法字符、空格等等 * */ public int myAtoi(String str) { double num = 0; str = str.trim(); int digit = 0; boolean flag = false; for (int i = str.length()-1; i >= 0; i--) { char ch = str.charAt(i); if (ch<=‘9‘ && ch>=‘0‘) { num += (ch-‘0‘) * (int)Math.pow(10, digit); digit++; } else if (ch==‘+‘ || ch==‘-‘) { if (flag) { return 0; } flag = true; if (ch==‘-‘) { num = -num; } } else { num = 0; flag = false; digit = 0; } } if (num > Integer.MAX_VALUE) { return Integer.MAX_VALUE; } if (num <= Integer.MIN_VALUE) { return Integer.MIN_VALUE; } return (int) num; } }
?
原文:http://hcx2013.iteye.com/blog/2212641