把字符串转换成整数

把字符串转换成整数

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 0 或者字符串不是一个合法的数值则返回 0

解题思路

字符 ‘0’ 的 ASCII 值是 48,‘1’ 到 ‘9’ 则是从 48 起始依次递增,因此解题的关键在于:

  • 判断有没有 ‘+’、’-‘ 等符号位,如果没有符号位默认为正整数
  • 依次取字符串中的每一个字符,判断是否在 ‘1’ 到 ‘9’ 的范围之内
public class Solution {
    public int StrToInt(String str) {
        if(str == null || str.length() == 0) {
            return 0;
        } else if(str.length() == 1 && (str.charAt(0) == '+' || str.charAt(0) == '-')) {
            return 0;
        }
        int result = 0;
        boolean flag = true;
        int j = 1;
        if(str.charAt(0) == '+') {
            str = str.substring(1, str.length());
        }
        if(str.charAt(0) == '-') {
            flag = false;
            str = str.substring(1, str.length());
        }
        for(int i = str.length() - 1; i >= 0; i--) {
            int temp = str.charAt(i) - 48;
            if(temp < 0 || temp > 9) {
                return 0;
            }
            result += temp * j;
            j *= 10;
        }
        if(flag == false) {
            return -result;
        }
        return result;
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/2603.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号