Swift学习笔记-String

在Swift中,String由字符构成,而字符由一个或多个Unicode标量构成

遍历字符串字符

var str="秋天到了123"
for c in str{
    print("'\(c)'")
}

判断字符串是否为空

var str="秋天到了123"
print(str.isEmpty)

获取字符串中字符数量

var str="秋天到了123"
print(str.count)//7
print(str.utf8.count)//utf8编码,15
print(str.utf16.count)//7

获取字符串子串

注意,swift中不支持以整数索引的方式获取字符

var str="秋天到了123"
//获取第3个字符的索引
let index1=str.index(str.startIndex, offsetBy: 2)

//获取倒数第3个字符的索引
let index2=str.index(str.endIndex, offsetBy: -3)

//全部字符串
print(str[...])//秋天到了123

//首个字符
print(str[str.startIndex])//秋

//最后一个字符
print(str[str.index(before: str.endIndex)])//3

//指定位置字符
print(str[index1])//到

//从起始到index1的子串
print(str[...index1])//秋天到
print(str.prefix(through: index1))//秋天到

//从起始到index1的子串,不包括index1
print(str[..<index1])//秋天
print(str.prefix(upTo: index1))//秋天

//从index1到结尾的子串
print(str[index1...])//到了123
print(str.suffix(from: index1))//到了123

//从index1到index2的子串
print(str[index1...index2])//到了1

//从index1到index2的子串,不包括index2
print(str[index1..<index2])//到了

十六进制表示Unicode标量

str="\u{0031}"//1

组合标量

两个Unicode标量可以组合成一个字符

str="\u{0061}\u{0301}"
print(str)//á
print(str.count)//1

遍历Unicode标量

str="123"
for scalar in str.unicodeScalars{
    print("\(scalar.value)")
}
//49 50 51

标准等价

有时候两个字符串的Unicode标量虽然不一样,但是可以表示为相同字符,在swift中这两个字符串相等

var str1="\u{0061}\u{0301}"
var str2="\u{00e1}"
print(str1==str2)//true
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容