LeetCode - String to Integer (atoi)
把所给的字符串按照规定转化成相应的数字。要考虑溢出的情况,含有非法字符的情况,数字前有空格的情况。但是还是比较简单的。
public class Solution { public int atoi(String str) { StringBuilder s = new StringBuilder(str.trim()); if(s.length() == 0) return 0; int flag1 = 0, flag2 = 0; // + - long ans = 0; int i = 0; if(s.charAt(i) == '+') { flag1 ++; i ++; } else if(s.charAt(i) == '-') { flag2 ++; i ++; } for(;i<s.length(); i++) { if(s.charAt(i)>='0' && s.charAt(i)<='9') { if(flag2 == 1) { ans = -(s.charAt(i) - '0'); flag2 ++; } else if(flag2 == 2) { ans = ans * 10 - (s.charAt(i) - '0'); if(ans < -2147483648L) return -2147483648; } else { ans = ans * 10 + (s.charAt(i) - '0'); if(ans > 2147483647L) return 2147483647; } } else break; } return (int)ans; } }
作者:Pickle
声明:对于转载分享我是没有意见的,出于对博客园社区和作者的尊重一定要保留原文地址哈。
致读者:坚持写博客不容易,写高质量博客更难,我也在不断的学习和进步,希望和所有同路人一道用技术来改变生活。觉得有点用就点个赞哈。