天天看點

swift c語言 字元串的長度,十、Swift3.0之字元串長度、拼接、格式化及子串

周遊。

func demo() {

let str: String = "abcdefg"

//NSString不支援一下方式周遊

//let str: NSString = "abcdefg"

for c in str.characters{

print(c)

}

}

字元串長度

func demo() {

let str: String = "abcd你好"

//1、傳回制定編碼對應的位元組數量 每個漢字是三個位元組 4+3+3 = 9

print(str.lengthOfBytes(using: .utf8))

//2、字元串長度 推薦使用

print(str.characters.count)

//3、使用NSString中轉擷取長度 as表示強轉為NSString類型

let ocStr = str as NSString

print(ocStr.length)

}

拼接字元串.

func demo2() {

let name = "老王"

let age = 18

let title: String? = "BOSS"

let point = CGPoint(x: 100, y: 200)

//拼接字元串時要注意可選項,如果含可選項會輸出Optional

let str = "\(name)\(age)\(title ?? "")\(point)"

print(str)

}

格式化字元串

func demo() {

let h = 8

let m = 9

let s = 6

//格式化字元串

let dataStr1 = String(format: "%02d:%02d:%02d",h,m,s)

print(dataStr1)

}

字元串的子串。

關于字元串子串這一塊,強烈建議通過NSString作為中轉。Swift關于子串處理一直在優化,目前非常不穩定。

func demo() {

//建議:一般使用NSString作為中轉,因為Swift取子串的方法一直在優化,一直沒有穩定

let str = "我是鄭亞偉"

//==================方法一====================

//轉為OC的NSString

let ocStr = str as NSString

let s1 = ocStr.substring(with: NSMakeRange(2, 3))

print(s1)

//==================方法二(知道即可)====================

//Swift3.0的寫法

//startIndex的position == 0

print(str.startIndex)

//endIndex的position == str.length

print(str.endIndex)

//*****取子串

//這裡面的“我是”和上面的我是,完全沒有關系,這裡主要是為了計算位置的

let s2 = str.substring(from: "我是".endIndex)

print(s2)

//****取範圍 這個range是可選的,可能沒有值

guard let range = str.range(of: "abc")else{

print("沒有找到字元串")

return

}

//guard let之後的range一定是有值的

print(range)

print(str.substring(with: range))

}