1.基本操作
注意:索引(Int)不能直接用,需要转为str.index(这里的“str”指的是字符串的名称)
import UIKit
var str = "ABCD E"
print(str.count)//6。打印字符串的长度
var a = str.startIndex//索引
print(str[a])//A。打印str首个字符
var b = str.index(before: str.endIndex)//索引
print(str[b])//E。打印str末尾字符。endIndex的前一个字符才是“E”
var c = str.index(str.startIndex,offsetBy: 3)//索引
print(str[c])//D。从首个字符0起算3个字符
var d = str.index(str.endIndex,offsetBy: -3)//索引
print(str[d])//D。打印倒数第3个字符
var e = str.index(str.startIndex,offsetBy: 1)//区间起始索引
var f = str.index(str.startIndex,offsetBy: 3)//区间结束索引
print(str[e...f])//BCD。
var g = str.firstIndex(of: "C") ?? str.endIndex//字符"C"不一定存在,所以是可选的。如果"C"不存在就返回最后一个字符
print(str[str.startIndex...g])//ABC
print(str.prefix(3))//ABC。返回字符串的前3个字符。prefix:前缀
2.遍历字符串
import UIKit
var str = "ABCDEF"
for index in str{
print(index)//ABCDEF
}
for index in 0..<str.count{
print(str[str.index(str.startIndex, offsetBy: index)])//ABCDEF
}
3.多行文本
import UIKit
var str = """
fghj
567yijo
gvhbj
"""
print(str)//注意引号里的内容是最“边缘”的情况,即内容不能再向左写了
print(#""hello\(world)""#)//"hello\(world)"。最边缘的一对引号是为了符合语法,再往里的引号就属于文本的内容了,想怎么写就怎么写
4.其它操作
import UIKit
var str = "ABCDEF"
print(str.contains("CD"))//true。字符串匹配
print(String(str.hasPrefix("AB")))//true。判断字符串的前缀是否为“AB”
print(String(str.hasSuffix("F")))//true。判断字符串的后缀是否为“F”
str.append("GHI")//扩展字符串
print(str)//ABCDEFGHI
str.insert(contentsOf:"hello", at: str.startIndex)// 插入字符串
print(str)//helloABCDEFGHI
str.insert(contentsOf: "world", at: str.index(str.startIndex, offsetBy: 10))//插入字符串
print(str)//helloABCDEworldFGHI
var a = str.index(str.startIndex,offsetBy: 5)
var b = str.index(str.startIndex,offsetBy: 9)
var range = a...b
str.replaceSubrange(range, with: "HELLO")//字符串的替换
print(str)//helloHELLOworldFGHI
print(str.replacingOccurrences(of: "hello", with: "123"))//123HELLOworldFGHI。字符串的替换
str.remove(at: str.index(str.startIndex, offsetBy: 5))//删除字符
print(str)//helloELLOworldFGHI。
str.removeSubrange((str.index(str.startIndex,offsetBy: 0)...str.index(str.startIndex,offsetBy: 5)))//删除字符串
print(str)//LLOworldFGHI