Swift的String类型与cString转换操作

String类型虽然强大,但是对处理已知文本是ascii字符的操作很不友好。所以有时候有必要将它转换为cString进行操作。

以下就是代码示例。

首先定义一个String类型。

let string = "hello, world"
复制代码

接下来,我们把它转换成cString,重新赋值。

let cString = string.cString(using: .utf8)!
复制代码

因为我们知道转换必定能成功,所以这里用了“!”,常规情况编码请注意做好nil防护。

我们截取字符串的前五个字符。

let slice  = cString[0..<5]
复制代码

由于sliceArraySlice类型,并非单独的数组,我们创建一个新的数组来接收它,又因为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)
复制代码

其它分享:

2021年遭遇苹果审核2.3.1的开发过审经历

4.2、4.3、Other和封号相关的技术性应对方案

如何有效的向苹果哭诉


移动开发者的小伙伴们可以加我的公众号风海铜锣的加群菜单栏中申请加群完成加群申请,一起共同进步。

分类:
iOS
标签: