003-Swift3.0之字符串类型

一、空字符串

var emptyString1 = ""
var emptyString2 = String()
// 判断是否为空
if emptyString1.isEmpty {
    print("字符串为空")
}

 

二、字符串可变性

1.常量字符串(let声明的字符串)完成赋值之后不可变

2.变量字符串(var声明的字符串)可变

var varString = "hello"
varString += ", Frank"
let letString = "Highlander"
// letString += "Frank"  (报错,不可变)

 

三、字符串的值类型

在Swift中,字符串的赋值和传值都是进行重新拷贝一份,因此它是值类型,仅仅只是拷贝值而已,是独立存在的

 

四、字符串&字符

1.属性:characters

var string1 = "hello, Frank"
for character in string1.characters {
    print(character)
}

2.字符的声明

注意:字符的声明必须显式声明,否则系统会误认为是String类型

let c1: Character = "!"
var c2: Character = "h"

3.字符转化为字符串

①通过字符串初始化函数

let character: Character = "s"
let characterArray: [Character] = ["F", "r", "a", "n", "k", "c", "o", "m", "e", "o", "n", "!"]
let str1 = String(character);        // 字符转字符串
let str2 = String(characterArray) // 字符集转字符串

②通过连接运算符

let s1 = "hello"
let s2 = "frank"
var s3 = s1 + s2
let s4 = "welcome"
var s5 = "to huanggang"
s5 += s4

③方法append()

let cc: Character = "!"
let ss = "HG"
var ss1 = "welcome to huanggang"
ss1.append(cc)
ss1.append(ss)

④任意基本数据类型通过\()转化为字符串

let ccc: Character = "M"
let nnn = 27
let mmm = 169.10
let sss = "Frank"
let s = "\(ccc)y name is \(sss), I'm \(nnn) years old! My height is \(mmm) cm."

 

五、字符串的字符数量

let sss1 = "Koala 🐨, Snail 🐌, Penguin 🐧, Dromedary 🐪"
let count = sss1.characters.count

 

六、字符串索引

1.属性:index

注意index区间:[startIndex, endIndex),不可越界

let greeting = "Guten Tag!"
greeting[greeting.startIndex]  // G
greeting[greeting.index(before: greeting.endIndex)]  // !
greeting[greeting.index(after: greeting.startIndex)]  // u
let index = greeting.index(greeting.startIndex, offsetBy: 7)
greeting[index]  // a

2.属性:characters.indices

indices:所有索引的范围集合,里面放的全部都是index

for index in greeting.characters.indices {
    print("\(greeting[index])", terminator: "")
}

 

七、插入和删除

1.插入

let ch: Character = "!"
let str = ", Frank"
var welcome1 = "hello"
welcome1.insert(ch, at: welcome1.endIndex)
welcome1.insert(contentsOf: str.characters, at: welcome1.index(before: welcome1.endIndex))

2.删除

var welcome2 = "hello, frank!"
welcome2.remove(at: welcome2.index(before: welcome2.endIndex))
let range = welcome2.index(welcome2.endIndex, offsetBy: -3) ..< welcome2.endIndex
welcome2.removeSubrange(range)
welcome2.removeAll()

 

八、比较字符串

Swift提供了三种方式比较文本值:字符串字符相等、前缀相等、后缀相等

1.字符串字符相等

let quotation1 = "we're a lot alike, you and I."
let sameQuotation1 = "We're a lot alike, you and I."
if quotation1 == sameQuotation1 {
    print("两个字符串字符相等")
} else {
    print("两个字符串字符不相等")
}

2.前缀:hasPrefix()

let quotation2 = "http://www.baidu.com"
if quotation2.hasPrefix("http") {
    print("http请求")
}

3.后缀:hasSuffix

let quotation3 = "1058842360@qq.com"
if quotation3.hasSuffix("qq.com") {
    print("QQ邮箱")
}

 

posted @ 2017-03-21 11:07  Frank9098  阅读(80)  评论(0)    收藏  举报