字符串转换整数 (atoi)

如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。
假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。
该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/string-to-integer-atoi
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
    public int myAtoi(String s) {
         char []chars =s.toCharArray();
         int n = chars.length;
         int idx=0;
         while(idx <n && chars[idx]==' '){
             //去掉空格
             idx++;
         }
         if(idx==n){
             return 0;
         }
         boolean flag =false;
         if(chars[idx]=='-'){
             flag=true;
             idx++;
         }else if(chars[idx]=='+'){
             idx++;
         }else if(!Character.isDigit(chars[idx])){
             return 0;
         }
         int ans =0;
         while(idx<n && Character.isDigit(chars[idx])){
             int digit =chars[idx] -'0';
             if(ans>(Integer.MAX_VALUE-digit)/10){
                 return flag?Integer.MIN_VALUE : Integer.MAX_VALUE;
             }
             ans =ans*10+digit;
             idx++;
         }
         return flag ? -ans :ans;
    }
}
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页