把字符串转换成整数

把字符串转换成整数

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

相关推荐

  • 谈谈CListCtrl 扩展风格设置方法-SetExtendedStyle和ModifyStyleEx 比較

    谈谈CListCtrl 扩展风格设置方法-SetExtendedStyle和ModifyStyleEx 比較谈谈CListCtrl扩展风格设置方法————————————–SetExtendedStyle和ModifyStyleEx比較对于刚開始学习的人来说,当他须要设定listctrl的扩展风格时,经常想到用ModifyStyleEx来设定,代码例如以下:ModifyStyleEx(0,LVS_EX_GRIDLINES)…

    2022年7月19日
  • DirectX修复工具使用技巧之三——命令行与配置文件参数介绍

    DirectX修复工具使用技巧之三——命令行与配置文件参数介绍最后更新:2021-10-8DirectX修复工具自V1.0版起即支持通过settings.ini配置文件的方式设置程序配置信息,自V3.7版起支持命令行配置功能。由于命令行与配置文件均需要通过参数设定程序配置信息,本文档详细列出了命令行与配置文件的参数使用方式,供有需要的高级用户参考。命令行与配置文件中约有90%的命令是通用的,部分特殊命令只支持命令行的配置方式,本文件将分别介绍命令行参数与配置文件参数。命令行参数本程序支持命令行参数提示,用户可通过/?或者/h…

    2022年5月22日
  • cardboard应用_cardboard怎么用

    cardboard应用_cardboard怎么用GoogleCardboard虚拟现实眼镜开发初步(一)虚拟现实技术简介不得不说这几年虚拟现实技术逐渐火热,伴随着虚拟现实设备的价格迅速平民化,越来越多的虚拟现实设备来到了我们眼前,也因此虚拟现实方面的开发离我们也越来越近。这几年迅速崛起的Oculus,其成功就在于拉近了虚拟现实与群众的距离,把原本价格高不可攀的虚拟现实设备放到了我们可以触手可及的位置,Oculus的技术开辟了

    2022年9月2日
  • 用fiddler抓包小程序

    用fiddler抓包小程序第一步:安装fiddler,保证手机和PC端在同一个wifi下;第二步:设置属性按图勾选第三步:以上两步设置完后,重启下fiddler(解决本地服务器不能访问),然后查看本地IP地址第四步:手机设置HTTP代理我的服务器IP是192.168.1.5端口号设置的是8888,在手动选项框输入第五步:代理设置完成,用safari打开服务器,http://192.168.1.5:8888(如果打不开…

    2022年6月17日
  • 51nod官网_51nod题难度

    51nod官网_51nod题难度1396 还是01串基准时间限制:1 秒空间限制:131072 KB分值: 20 难度:3级算法题 收藏 关注给定一个0-1串s,长度为n,下标从0开始,求一个位置k,满足0<=k<=n,并且子串s[0..k-1]中的0的个数与子串s[k..n-1]中1的个数相等。注意:(1)如果k=0,s[0..k-1]

    2022年8月12日
  • 显卡三重缓冲

    显卡三重缓冲显卡三重缓冲是解决显示器刷新率不足的问题的方案。

    2022年5月22日

发表回复

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

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