2.字面量swift
var s = "hello"//字面量數組
var s1: String = "hello"app
var c: Character = "a"spa
var s2: String = "狗 🐶"code
print(s2)orm
3.初始化空字符串對象
var s = ""索引
var s1 = String()unicode
print(s.isEmpty)rem
print(s1.isEmpty)
4.字符串的可變性
var s1 = "hello"
var s2 = s1+"world"
print(s2)
var s3 = "test"
s3.insert("t", atIndex: s3.startIndex)
print(s3)
5.字符串是值類型
值類型的賦值是拷貝,引用類型的賦值是地址傳遞,全部的結構體都是值類型的,全部的class類型的都是引用類型的
var s = "hello"
var s2 = s//copy,s,s2是兩個
print(s)
print(s2)
s = "world"
print(s)
print(s2)
//引用類型
class person {
var age: Int!
}
var p1 = person()
p1.age = 20
var p2 = p1//同一個對象,兩個名字
print(p1.age)
print(p2.age)
print("--------")
p1.age = 21//改變p1的值,p2的值也會跟着改變
print(p1.age)
print(p2.age)
6.使用字符
var s = "hello"
//var c:Character
for c in s.characters{
print(c)
}
var c: Character = "A"//再swift裏面字符也是使用雙引號
//用數組定義字符串
let cArray: [Character] = ["h","e","l","l","o"]
var s1 = String(cArray)
print(s1)
7.字符串的連接
var s1 = "hello"
var s2 = "world"
var s3 = s1+s2
print(s3)
s1+=s2
print(s1)
s1.appendContentsOf(s2)
print(s1)
var c: Character = "a"
s1.append(c)
print(s1)
8.字符串插值
var name = "tom"
var age = 20
var email = "tom@gmail.com"
var msg = "\(name),\(age),\(email)"
print(msg)
9.轉義字符
\0(空字符),\\(反斜槓),\t(水平製表符),\n(換行)
10.字符串的計數
var s = "hello world"
print(s.characters.count)
11.訪問和修改字符串
var s = "hello world"
print(s.startIndex)//起始位置
print(s.endIndex)// 結尾位置
print(s.startIndex.successor())//後面的
print(s.endIndex.predecessor())//前面的
print(s.startIndex.advancedBy(3))//某個索引位置的
遍歷字符串
var s = "hello"
for index in s.characters.indices{
print(s[index])
}
12.插入字符
var s = "hello"
var c: Character = "A"
s.insert(c, atIndex: s.endIndex)
print(s)
var s2 = "world"
s.insertContentsOf(s2.characters, at: s.endIndex)
print(s)
var s3 = "tom"
s.insertContentsOf(s3.characters, at: s.endIndex.advancedBy(-3))//若是是startindex,則是3
print(s)
13.刪除字符
var s = "hello"
//s.removeAtIndex(s.startIndex.advancedBy(3))
//print(s)//刪除某個字符
//刪除某個範圍的字符
let range = s.startIndex..<s.startIndex.advancedBy(2)
s.removeRange(range)
print(s)
14.比較字符串
var s1 = "section1 basic"
var s2 = "section2 basic"
print(s1==s2)
print(s1 != s2)
print(s1.hasPrefix("section1"))//前綴
print(s2.hasSuffix("basic"))//後綴
15.字符串的unicode表示
var dog = "dog!!🐶"
for code in dog.utf8{
print(code)//8位表示
}
print("---------")
for code in dog.utf16{
print(code)//16位表示
}
print("---------")
for code in dog.unicodeScalars{
print(code)//標量表示
}