在Swift4.0中,字符串的拼接很简单。直接用'+'或者'+='就行,但是我看了一下文档,字符串的剪切方法不多,而且不容易使用。
一, 先看一下系统的方法:
let string = "cang mang de tian ya shi wo de ai"
//获取第一个字母'd'所在的位置
let index = string.index(of: "d")!
//1, 字母'd'(包括)之前的字符串
let str1 = string[...index]
//"cang mang d"
//字母'd'(不包括)之前的字符串
let str11 = string[..<index]
//"cang mang "
//2, 字母'd'(包括)之后的字符串
let str2 = string[index...]
//"de tian ya shi wo de ai"
//字符串string的开始字母的下标
let startIndex = string.startIndex
//从开始到字母'd'下标区间
let range = startIndex..<index
//区间内的字符串
let str3 = String(string[range])
//"cang mang "
//下标4
let index4 = string.index(string.startIndex, offsetBy: 4)
//从开始到index4的字符串
let str4 = String(string[startIndex...index4])
//"cang "
//下标4后面一个的下标
let index5 = string.index(after: index4)
//从开始到index5区间的字符串
let str5 = String(string[startIndex...index5])
//"cang m"
//下标index5的前一个下标
let index6 = string.index(before: index5)
//从开始到index6的字符串
let str6 = String(string[startIndex...index6])
//"cang "
二, 说实话上面的方法使用有点费劲,可以给String添加 extension方法
extension String {
//1, 截取规定下标之后的字符串
func subStringFrom(index: Int)-> String {
let temporaryString: String = self
let temporaryIndex = temporaryString.index(temporaryString.startIndex, offsetBy: 3)
return String(temporaryString[temporaryIndex...])
}
//2, 截取规定下标之前的字符串
func subStringTo(index: Int) -> String {
let temporaryString = self
let temporaryIndex = temporaryString.index(temporaryString.startIndex, offsetBy: index)
return String(temporaryString[...temporaryIndex])
}
}
方法的使用:
"Hello World".subStringFrom(index: 3) // "lo World"
"Hello World".subStringTo(index: 3) //"Hell"
网友评论