【Leetcode-easy】StringtoInteger(atoi)

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

题目要求:字符串->整型

* 1. 首先需要丢弃字符串前面的空格。

* 2. 然后可能有正负号(注意只取一个,如果有多个正负号,那么说这个字符串是无法转换的,返回0。比如测试用例里就有个“+-2”)。

* 3. 字符串可以包含0~9以外的字符,如果遇到非数字字符,那么只取该字符之前的部分,如“-00123a66”返回为“-123”。

* 4. 如果超出int的范围,返回边界值(2147483647或-2147483648)。

思路:顺序读取,顺序处理。正数,result=result*10+digit ;负数:result=reuslt*10-digit

1publicintmyAtoi(String str) {2if(str==null||str.length()==0)return0;3str=str.trim();45booleannegative=false;6inti=0;7if(str.charAt(i)=='+'){8i++;9}elseif(str.charAt(i)=='-'){10negative=true;11i++;12}13doubleresult=0;//必须要先使用double,否则会先越界14for(;i<str.length();i++){15intdigit=str.charAt(i)-'0';16if(digit<0||digit>9)

break;17if(negative==false){18result=result*10+digit;19if(result>Integer.MAX_VALUE){20returnInteger.MAX_VALUE;21}22}else{23result=result*10-digit;24if(result<Integer.MIN_VALUE){25returnInteger.MIN_VALUE;26}27}28}29return(int)result;30}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航