字符串转换整数 (atoi)

it2025-05-30  9

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

来源:力扣(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; } }
最新回复(0)