Swift编程 Swift快速入门

Swift学习笔记-String

2018-10-16  本文已影响3人  土豆吞噬者

在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
上一篇下一篇

猜你喜欢

热点阅读