Swift---3.字符串与字符
2017-02-20 本文已影响25人
阿丶伦
- 字符串(String)
- 空字符串(两种生成方法,生成的字符串相同,Swift中,
isEmpty
方法用来判断字符串是否为空)
var emptyString1 = ""
var emptyString2 = String()
if emptyString1 == emptyString2 {
print("same")
}
if emptyString1.isEmpty {
print("is empty")
}
- 不可变字符串(即生成一个常量)
let string = "cannot change"
- 可变字符串(变量)
var string = "hello"
string += "world!"
- 字符串插值(要在字符串中插入一个值,在双引号中使用(xxx))
var num = 3
var string = "page \(num)"
- 字符(character)
- Swift中字符串拥有一个
characters
属性,返回一个包含字符串内所有字符的数组
var string = "hello world!"
for character in string.characters {
print(character)
}
- 生成单个字符
var char:Character = "c"
- 字符拼接到字符串中
var string = "hello world"
var char:Character = "!"
string.append(char)
- 获取字符串长度(获取字符串的字符数组,取数组长度)
var str = "hello"
var count = str.characters.count
- 字符串下标(index)
- startIndex(字符串第一个字符的位置)
var str = "test" var t = str[str.startIndex]
- endIndex(字符串最后一个字符的位置)
var str = "test" //这样写会报错,因为endIndex是取最后一个字符后一位的位置,此时会引发越界错误 //var t = str[str.endIndex] var t = str[str.index(before: str.endIndex)]
- 获取固定位置的字符
var test = "test" var e = test[test.index(test.startIndex, offsetBy: 1)]
- 前缀(方法
hasPrefix
,返回布尔值)
var str = "hello"
if str.hasPrefix("h") {
print("yes")
}
- 后缀(
hasSuffix
)
var str = "hello"
if str.hasSuffix("lo") {
print("yes")
}
- 增删
- 拼接字符串(方法有两种,一种传入单个字符,拼接在置顶的位置,另一个方法,传入集合类型,即数组,集合,字典,此处我们传入字符串的字符数组,而非字符串本身)
//insert str.insert("!", at: str.endIndex) str.insert(contentsOf: "world".characters, at: str.index(str.endIndex, offsetBy: -1)) str.insert(" ", at: str.index(str.startIndex, offsetBy: 5))
- 删减字符串
var str = "hello!" //删除置顶位置的单个字符 str.remove(at: str.index(before: str.endIndex)) //删除范围内的所有字符 str.removeSubrange(str.index(str.startIndex, offsetBy: 2)..<str.endIndex)