1. 首页
  2. 软件开发
  3. day-56 字符串转换整数 (atoi)

day-56 字符串转换整数 (atoi)

  • 发布于 2024-09-26
  • 1 次阅读


思路
利用trim()函数去掉前后空格,然后判断是否有'+'或'-'号,如果有则去掉,然后依次向后遍历字符串,直到遇到非数字字符或遍历结束,遍历过程中用一个long型记录当前整数大小

解题过程
最后判断整数大小是否超过整型的边界即可

Code

class Solution {

    public int myAtoi(String s) {

        s=s.trim();
        boolean flag=true;
        if(s.length()>0&&s.charAt(0)=='-'){

            flag=false;
            s=s.substring(1,s.length());
        }else if(s.length()>0&&s.charAt(0)=='+'){

            s=s.substring(1,s.length());
        }
        long ans=0;
        int id=0;
        while(id<s.length()&&0<=s.charAt(id)-'0'&&s.charAt(id)-'0'<=9){

            ans=ans*10+s.charAt(id)-'0';
            if(flag&&ans>=Integer.MAX_VALUE)return Integer.MAX_VALUE;
            if(!flag&&-1*ans<=Integer.MIN_VALUE)return Integer.MIN_VALUE;
            id++;
        }
        if(flag){

            if(ans>=Integer.MAX_VALUE)return Integer.MAX_VALUE;
            else{

                return (int)ans;
            }
        }else{

            ans=-1*ans;
            if(ans<=Integer.MIN_VALUE)return Integer.MIN_VALUE;
            else return (int)ans;
        }
    }
}

作者:菜卷
链接:https://leetcode.cn/problems/string-to-integer-atoi/solutions/2923358/zi-fu-chuan-zhuan-huan-zheng-shu-atoi-by-2ce7/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文链接: https://blog.csdn.net/qq_53568730/article/details/142375722