字符串转换为整型

在Swift中,字符串转换为整型的方法有两种,我们在这里比较一下这两种方法的区别:


1、使用强制类型转换,代码如下:

var str = "1234"
var integer = Int(str)
print(integer)  // 输出1234

但如果换一个字符串

var str = "123,4"
var integer = Int(str)
print(integer)  // 输出nil

2、先将swift原生String类型字符串转换为NSString类型,再使用NSString类型的只读属性即可完成转换

var str = "1234"
var integer = (str as NSString).integerValue
print(integer)  // 输出1234
现在换一个字符串

var str = "123,4"
var integer = (str as NSString).integerValue
print(integer)  // 输出123
但再换一个字符串

var str = "a123,4"
var integer = (str as NSString).integerValue
print(integer)  // 输出0

结论:可见第一种方法方便、简单,但如果字符串中含有非数字字符,便不能完成转换,也就是说,这种方法只能将字符串整个全部转换成整型,而且转换的结果为可选类型(成功时字面量为该数字,失败时为nil);第二种方法相比第一种方法略为麻烦一点,而且会有一点多余的转换的开销(官方文档说String转换为NSString时是零开销,但肯定是会有开销的,只是几乎能忽略不计),但这种方式可以从字符串的第一个字符开始判断,若第一个字符为非数字字符,则转换结果为0,若第一个字符为数字字符,则转换下一个字符,直到遇到非数字字符或字符串结尾为止,并且中这种方式转换的结果为非可选整型


以博主个人的习惯来说,推荐大家使用第二种转换方法。

发布了45 篇原创文章 · 获赞 20 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/average17/article/details/77388324