leetcode 8. 字符串转换整数 (atoi)

class Solution {
    public int myAtoi(String s) {
        s=s.trim();
        long ans=0;
        if(s.length()==0)return 0;

        if(s.charAt(0)=='-'||s.charAt(0)=='+')
        {
        	for(int i=1;i<s.length();++i)
        	{
        		if(Character.isDigit(s.charAt(i))&&ans<1l<<32)
        		ans=ans*10+(s.charAt(i)-'0');
        		else break;
        	}
        }
        else
        {
        	for(int i=0;i<s.length();++i)
        	{
        		if(Character.isDigit(s.charAt(i))&&ans<1l<<32)
        		ans=ans*10+(s.charAt(i)-'0');
        		else break;
        	}
        }
        if(s.charAt(0)=='-')
        {
        	ans*=-1;
        	if(ans<(1<<31))ans=(1<<31);
        }
        else
        {
        	if(ans>(1<<31)-1)ans=(1<<31)-1;
        }
        return Long.valueOf(ans).intValue();
    }
}
posted @ 2022-11-17 23:03  林动  阅读(9)  评论(0编辑  收藏  举报