String
类型虽然强大,但是对处理已知文本是ascii
字符的操作很不友好。所以有时候有必要将它转换为cString
进行操作。
以下就是代码示例。
首先定义一个String
类型。
let string = "hello, world"
复制代码
接下来,我们把它转换成cString,重新赋值。
let cString = string.cString(using: .utf8)!
复制代码
因为我们知道转换必定能成功,所以这里用了“
!
”,常规情况编码请注意做好nil
防护。
我们截取字符串的前五个字符。
let slice = cString[0..<5]
复制代码
由于slice
是ArraySlice
类型,并非单独的数组,我们创建一个新的数组来接收它,又因为cString
字符串始终以0
结尾,所以我们追加了数组元素0
。
let subCString = newArray + [0]
复制代码
接下来,我们再把数组转换为String
类型。
let subString = String(cString: subCString)
复制代码
打印subString
print(subString)
复制代码
打印结果是hello
。
贴一下完整代码。
let string = "hello, world"
let cString = string.cString(using: .utf8)!
let slice = cString[0..<5]
let newArray = slice.map { $0 }
let subCString = newArray + [0]
let subString = String(cString: subCString)
print(subString)
复制代码
其它分享:
移动开发者的小伙伴们可以加我的公众号风海铜锣的加群菜单栏中申请加群完成加群申请,一起共同进步。