1.字符串的定义
let someString = "some string value"
2.多行字符串的定义(""")
let quotation = """ 有一个人前来买瓜。 "这瓜甜吗?"他问。 """
前一个"""前和后一个"""后无换行
//前一个"""前和后一个"""后无换行 let someString = "有个人。" let someString = """ 有个人。 """ //此两个语句效果相同
想要实现在代码编写时换行而在实际运行后不换行: \
//在代码编写时换行而在实际运行后不换行 let someString = """ abcdefg\ hijklmn """ //实际输出:abcdefghijklmn
3.字符串中的特殊字符
(1)转义字符
\0 | 空字符 |
\\ | 反斜线 |
\t | 水平制表符 |
\n | 换行符 |
\r | 回车符 |
\" | 双引号 |
\' | 单引号 |
要在"""中使用(""")时,必须至少写一个转义符\。例如 \""" 或 \"\"\"
(2)Unicode标量
\u{24} | 两位十六进制数 |
\u{2665} | 四位十六进制数 |
\u{nnn...} | 1~8位十六进制数 |
4.扩展字符分隔符
有\但不想转义时:
#"Line1 \nLine2"#
5.初始化空字符串
var emptyString = "" //或 var emptyString = String() //判断字符串是否为空: if emptyString.isEmpty { print("Empty!") }
6.字符串可变性
var a = "a" a += "b" //a = "ab" let c = "c" c += "d" //报错,常量字符串不可修改
7.使用字符
//通过for-in输出字符
for c in "Dog!"{ print(c) } /* 输出: D o g ! */
//通过指定类型创建字符
let end: Character = "!"
//通过定义字符数组创建字符数组,再通过String(字符数组)方法创建字符串
let cat: [Character] = ["c", "a", "t"] let catString = String(cat) print(cat) //输出cat
8.连接字符串和字符
//1 let a = "a" let b = "b" var c = a + b //2 var a = "a" a += b //3 let a: Character = "a" b.append(a) //ba
9.字符串插值
let a = 3 let message = "\(a) times 2.5 is \(Double(a) * 2,5)" //3 times 2.5 is 7.5
10.字符串索引
let greeting = "Guten Tag!" greeting[greeting.startIndex] //G greeting[greeting.index( before: greeting.endIndex)] //! greeting[greeting.index( after: greeting.startIndex)] //u greeting[greeting.index( greeting.startIndex, offsetBy: 7)] //a
startIndex为第一个字符;endIndex为最后一个字符后一个字符。
indices属性会创建一个包含全部索引范围访问单字符。
for index in getting.indices{ print("\(greeting[index])", terminator:" ") } //G u t e n T a g !
11.插入和删除
//插入
var h = "Hello" h.insert("!", at: h.endIndex) //Hello!
//删除 //remove h.remove( at: h.index(before: h.endIndex) ) //Hello //removeSubrange let range = h.startIndex ..< h.endIndex h.removeSubrange(range) //参数为一个字符串范围 //运行结果:啥也没有
12.子字符串
let g = "Hello,World!" let index = g.firstIndex(of: ",") ?? g.endIndex let beginning = g[..<index] //beginning为subString类型 let newString = String(beginning) //将subString类型转换为String类型 //短时间使用此子字符串用subString,长期使用需转换为String类型 print(newString) //Hello
13.比较字符串
(1)字符串/字符相等
== !=
标准相等:语言意义和外观都相等。
a == a | 自反性 |
a == b ⇒ b == a | 对称性 |
a == b && b == c ⇒ a == c | 传递性 |
(2)前缀/后缀相等
//都返回一个布尔值 scene.hasPrefix("Action 1") //有相同前缀"Action 1" scene.hasSuffix("。") //有相同后缀"。"
14.utf8表示、utf16表示
dogString.utf8 //68 111 103 226 dogString.utf16 //68 111 103 8252
15.Unicode标量表示
Unicode:字符的唯一21位数表示
dogString.unicodeScalars //D o g !
标签:字符,index,iOS,greeting,var,let,字符串,Swift From: https://www.cnblogs.com/lysboke/p/17652248.html