[Swift]库函数atoi:将字符串内容转换为整数

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

猜你喜欢

转载自www.cnblogs.com/strengthen/p/10127628.html