String to Integer

Q: Implement atoi to convert a string to an integer.

昨天很巧地在《剑指offer》的开篇看到了这个例子,作者举这个例子是为了强调程序的鲁棒性,鼓励我们在写代码之前就想好测试用例,避免程序漏洞导致系统运行崩溃,其实这在前面也提到过,还是那句话,想好所有可能会出现的情况再开始敲。

<span style="color:#333333;">public class Solution {
    public int atoi(String str) {
        int num = 0;
        int i = 0;
        if (str.length() == 0){  </span><span style="color:#ff0000;">//空字符串</span><span style="color:#333333;">
            return 0;
        }
        char ch[] = str.toCharArray();
        while (i < ch.length && ch[i] == ' '){  </span><span style="color:#ff0000;">//str = "   112233"</span><span style="color:#333333;">
            i ++;
        }
        int t = i;
        int count  = 0;
        while (ch[i] == '+' || ch[i] == '-'){  </span><span style="color:#ff0000;">//str = "+-2"</span><span style="color:#333333;">
            i ++;
            count ++;
        }
        if (count > 1){
            return 0;
        }
        int j = i;
        while (j < ch.length && Character.isDigit(ch[j])){  </span><span style="color:#ff0000;">//str = "   1122a33"</span><span style="color:#333333;">
		    j ++;
	    }
        while (i < j)  {
            if (ch[t] == '-'){
                num += (-1) * (ch[i] - 48) * Math.pow(10, j - 1 - i);
            }
            else{
                num += (ch[i] - 48) * Math.pow(10, j - 1 - i);
            }
            i ++;
        }
        return num;
    }
}</span>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值