把字符串转换成整数

把字符串转换成整数

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 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;
    }
}

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mybatis返回值为map类型时怎么处理_构造函数不能有返回类型

    mybatis返回值为map类型时怎么处理_构造函数不能有返回类型最有用到mybatis返回一个map结果集,然后就针对性的在网上找了一些相关大牛的总结:1.mybatis返回map结果集-红尘中人·杨哥-博客园2.MyBatis返回Map|码农网然后经过自己的测试终于可以应用实际业务中1、如果你确定返回的数据只有一条,你可以这样整xml中:<selectid=”searchncomedateByInvestID”resultMap=”java.util.HashMap”>selectt1.invest.

    2022年10月4日
    2
  • golang面试题(带答案)[通俗易懂]

    golang面试题(带答案)[通俗易懂]1.下面代码输出什么,为什么 //make([]T,length,capacity) s1:=[]int{1,2,3} fmt.Println(s1,”哈哈”)//[123] s2:=s1 fmt.Println(s1,”哈哈”)//[123] fori:=0;i<3;i++{ s2[i]=s2[i]+1 } fmt.Println(s1)//[234] fmt.Println(s2)//[234][12

    2022年6月29日
    88
  • linux用命令dpkg,Linux下dpkg命令常用方法整理「建议收藏」

    linux用命令dpkg,Linux下dpkg命令常用方法整理「建议收藏」如果ubuntu要安装新软件,已有deb安装包(例如:iptux.deb),但是无法登录到桌面环境。那该怎么安装?答案是:使用dpkg命令。dpkg命令常用格式如下:代码如下:sudodpkg-Iiptux.deb#查看iptux.deb软件包的详细信息,包括软件名称、版本以及大小等(其中-I等价于–info)代码如下:sudodpkg-ciptux.deb#查看iptux.deb软件…

    2022年5月21日
    53
  • nurtas aidarbekov_true image2018

    nurtas aidarbekov_true image2018Up主作为CV穷人代表,这一次想要触碰一下papers里最为活跃却又以“Huge”令穷人望而生畏的超级数据集:ImageNet中的ILSVRC2012.还记得依靠氪金“霸道总裁式”碾压一切“noise2image”的BigGAN吗?来不及时间解释了,快上车!##下载可怜穷人的BigGAN-4~8gpusversion>>gitcl…

    2022年10月9日
    2
  • miRNA命名规范

    miRNA命名规范miRNA 的研究起步很早 最早发现的 miRNA 是线虫中的 let 7 和 lin 4 随着越来越多的 miRNA 被发现 为了方便学术交流 有科学家提出了一套统一的命名规范 对应的文献如下

    2025年10月13日
    3
  • ImportError: No module named bz2问题解决方法「建议收藏」

    ImportError: No module named bz2问题解决方法「建议收藏」问题:File”out/host/Linux-x86/obj/EXECUTABLES/mksnapshot.arm_intermediates/js2c.py”,line36,in  importbz2ImportError:Nomodulenamedbz2Traceback(mostrecentcalllast): File”out

    2022年6月1日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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