把字符串转换成整数

把字符串转换成整数

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为 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)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 一个非常好而且免费的CSS开发库Pure

    一个非常好而且免费的CSS开发库Pure

    2021年9月4日
  • linux如何查看防火墙是否开启?删除iptables规则

    linux如何查看防火墙是否开启?删除iptables规则

    2021年11月3日
  • 【转载】C#中的==、Equal、ReferenceEqual

    【转载】C#中的==、Equal、ReferenceEqual

    2021年11月21日
  • windows phone模拟器安卓版_安卓模拟器win7

    windows phone模拟器安卓版_安卓模拟器win7XNAGameStudio 游戏循环在这部分中您将重点两剩余部分的游戏 — — 重写Update 和 Draw 功能。有些大大可能看过相关微软的训练包,我这里主要是帮一些初学者。希望各位大大包含,毕竟文章发出来还是有工作量的。大家觉得有用就好,要是没有耽误时间给大家道个歉。(感谢http://winphone.us/)1.       打开 BackgroundScreen.c

    2022年8月30日
  • WireShark抓包后数据分析

    WireShark抓包后数据分析在分析数据之前,我们先了解一下我们传输数据的结构体系,如下图:这是两种体系,我们常知的一般都是TCP/IP体系结构。TCP/IP体系架构分析不难发现,TCP/IP体系中包含着很多我们熟悉的协议,比如说:http、smtp、https等。而我们人(使用者)是站在应用层之上的,我们想把数据上传或者说发送给别人,就要通过一些应用,如:QQ、微信、百度网盘等。然后就经过一层层加密(在数据包前加个“头”),一层层的传递。Frame层(物理层)分析这是我自己抓包的一个例子,我从我自己的QQ发了一条消息给朋友,

    2022年9月4日
  • day04 JavaScript高级程序设计 阅读总结

    day04 JavaScript高级程序设计 阅读总结《JavaScript高级程序设计》(第四版)阅读总结额,据说这本是前端er必看书籍,花了20个小时简单把这本书过了一下,目前暂时很少用到的东西我这一遍就没有过了,等以后要用的时候再回来继续学了。先来谈谈这本书的缺点,书籍前面章节用到了一些后面才讲到的东西,比如第三章讲symbol对象时,就用到了后面才讲的iterator和generator。然后就是感觉讲的有点太广了,而且基本没有课后习题,看过就是看过了,顶多自己花时间把书里面的例子都敲一遍。所以我建议应该和现代JavaScript教程一起食用。反

    2022年8月20日

发表回复

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

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