[Swift]库函数atoi:将字符串内容转换为整数
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/ )
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10127628.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
1、如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回Int32整形数。否则,返回0。
1 //返回Int32位整形 2 print(atoi("123456")) 3 //Print 123456 4 print(atoi("-123456")) 5 //Print -123456 6 print(atoi("1234567\089")) 7 //Print 1234567 8 print(atoi("strengthen")) 9 //Print 0
2、在找到第一个非空字符之前,需要移除掉字符串中的空格字符。
(1)如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。
(2)如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。
1 print(atoi(" -123456")) 2 //Print -123456 3 //注意此情况返回0 4 print(atoi(" - 123456")) 5 //Print 0 6 //截止转换字符 '6' ,其下一个字符不为数字。 7 print(atoi(" -123456abcd")) 8 //Print -123456
3、字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。
1 print(atoi(" 123456 abcd")) 2 //Print 123456
4、当字符串中的第一个非空字符序列不是个有效的整数;或字符串为空;或字符串仅包含空白字符时,则不进行转换。若函数不能执行有效的转换,返回 0。
1 print(atoi("strengthen")) 2 //Print 0
5、32 位有符号整数,其数值范围是 [−2^31, 2^31 − 1]。如果数值超过可表示的范围,则转换数值会不正确。
1 //超过Int32所表示的整数范围。 2^31=2147483648 2 print(atoi("2147483647")) 3 //Print 2147483647 4 print(atoi("2147483648")) 5 //Print -2147483648 6 print(atoi("2187483649")) 7 //Print -2107483647