把字符串转换成整数

把字符串转换成整数

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


相关推荐

  • java.net.SocketTimeoutException: connect timed out 的解决办法

    java.net.SocketTimeoutException: connect timed out 的解决办法问题概述在项目中使用FastDFSClient上传图片/文件时,一直上传失败的,报错:java.net.SocketTimeoutException:connecttimedout表示连接失败的,错误信息部分截图如下:具体信息如下:2020-03-0816:41:12,423[localhost-startStop-1-SendThread(192.168.159…

    2022年10月20日
    3
  • MySQL修改字段类型、字段名字、字段长度、字段小数点长度。

    MySQL修改字段类型、字段名字、字段长度、字段小数点长度。mysql>altertable表名modifycolumn字段名类型。数据库中address表city字段是varchar(30),修改类型可以用(谨慎修改类型,可能会导致原有数据出错)。mysql>altertableaddressmodifycolumncitychar(30);修改长度可以用(修改长度,要保证不短与已有数据,以保证原有数据不出错)mysql>altertableaddressmodifycolumncityvarcha.

    2022年5月29日
    31
  • madvr怎么设置hdr_文字识别软件

    madvr怎么设置hdr_文字识别软件PotPlayer播放HDR视频截图PotPlayer播放HDR视频截图Windows10内置视频播放器播放HDR视频Windows10内置视频播放器播放HDR视频从去年开始,支持HDR的电视机已经卖得铺天盖地,支持4KUHDHDR的片源也变得丰富起来,动辄50GB的视频资源让广大10TB级松鼠病晚期患者们兴奋地表示家里屯的硬盘和百兆宽带终于有了用武…

    2025年11月16日
    1
  • 同济大学 线性代数 第六版 pdf_【课后习题答案】工程数学线性代数同济第六版+课后习题答案…

    同济大学 线性代数 第六版 pdf_【课后习题答案】工程数学线性代数同济第六版+课后习题答案…资料介绍本次分享资源内容为工程数学线性代数(第六版)课后习题答案教材:工程数学线性代数(第六版)作者:同济大学数学系编出版社:高等教育出版课后习题答案第一章行列式第二章矩阵及其运算第三章矩阵的初等变换与线性方程组第四章向量组的线性相关性第五章相似矩阵及二次型第六章线性空间与线性变换温馨提示:1、资料下载链接如有失效请联系小编获取最新链接!2、声明:上述资料…

    2022年7月25日
    15
  • 使用instsrv.exe和srvany.exe将应用程序安装成windows后台服务

    使用instsrv.exe和srvany.exe将应用程序安装成windows后台服务windows系统下的自带的工具包介绍

    2022年5月22日
    25
  • 交通灯控制逻辑电路设计实验报告_交通灯控制电路的设计报告

    交通灯控制逻辑电路设计实验报告_交通灯控制电路的设计报告交通灯控制逻辑电路设计这是一个数电实验,交通灯,如果使用FPGA或者单片机来完成的话,会简单很多,这里采用的是使用常规的计数器,触发器,门电路等基本器件搭建,扩展部分可以完成总通行时间在100s内任意设置,红、黄、绿灯亮的时间长短之和在100s内任意设置,其实想要超过100s只需要扩展相应的计数器,以及门电路即可,限制功能的往往是资源;一、选题背景1.1、应用背景为了确保十字路口的车辆顺利、畅通地通过,往往都采用自动控制的交通信号灯来进行指挥。其中红灯(R)亮表示该条道路禁止通行;黄灯(Y)亮表示停

    2025年11月26日
    4

发表回复

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

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