8. 字符串转换整数 (atoi)

简介: 8. 字符串转换整数 (atoi)

使其能将字符串转换成一个 32 位有符号整数.

 

public int myAtoi(String str) {
        int res = 0;
        int i = 0;
        int flag = 1;
        while (i < str.length() && str.charAt(i) == ' '){i++;} //处理空格
        if (i < str.length() && str.charAt(i) == '-') {flag=-1;}
        if (i < str.length() && str.charAt(i) == '+' || i < str.length() && str.charAt(i) == '-') {i++;}
        while (i<str.length() && Character.isDigit(str.charAt(i))) {
            int r = str.charAt(i) - '0';
            if (res > Integer.MAX_VALUE/10 || (res == Integer.MAX_VALUE/10 && r > Integer.MAX_VALUE%10)) {
                return flag > 0 ? Integer.MAX_VALUE : Integer.MIN_VALUE;
            }
            res = res*10 + r;
            i++;
        }
        return flag>0 ? res : -res;
    }
相关文章
|
8月前
|
C语言
Day6 不要二、把字符串转换成整数
Day6 不要二、把字符串转换成整数
64 0
|
8月前
|
存储 C语言
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现2
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现
|
2月前
|
存储 Java C++
字符串转换整数 (atoi)
实现一个 `atoi` 函数,用于将字符串转换成整数。函数首先去除字符串前导空格,然后根据首个非空字符(正/负号或数字)决定转换规则,最终生成一个有符号整数。若字符串无效或超出 32 位有符号整数范围,则返回 0 或边界值(`INT_MAX` 或 `INT_MIN`)。示例包括处理前导空格、正负号、多余字符及超范围值等情形。
32 0
|
3月前
|
算法 C++
Leetcode第八题(字符串转换整数(atoi))
这篇文章介绍了LeetCode上第8题“字符串转换整数(atoi)”的解题思路和C++的实现方法,包括处理前导空格、正负号、连续数字字符以及整数溢出的情况。
25 0
|
5月前
|
算法
LeetCode第8题字符串转换整数 (atoi)
该文章介绍了 LeetCode 第 8 题字符串转换整数 (atoi)的解法,需要对字符串进行格式解析与校验,去除前导空格和处理正负号,通过从高位到低位的计算方式将字符串转换为整数,并处理越界情况。同时总结了这几道题都需要对数字的表示有理解。
LeetCode第8题字符串转换整数 (atoi)
|
8月前
|
存储 C语言
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现1
【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现
|
8月前
|
存储 算法 C#
Leetcode算法系列| 8. 字符串转换整数 (atoi)
Leetcode算法系列| 8. 字符串转换整数 (atoi)
|
8月前
|
存储 C++
(C++)把字符串转换成整数
(C++)把字符串转换成整数
84 0
|
算法 安全 Swift
LeetCode - #8 字符串转换整数(atoi)
不积跬步,无以至千里;不积小流,无以成江海,Swift社区 伴你前行。如果大家有建议和意见欢迎在文末留言,我们会尽力满足大家的需求。
|
存储 测试技术
leetcode:8.字符串转换正数(atoi)
当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。
53 0