标签:
初始化空字符串
创建空字符串,可以将空的字符串字面量赋值给变量,也可以初始化一个新的 String 实例:
var emptyString = ""
var anotherEmptyString = String()
//两个字符串均为空,并相等
可以通过检查其 Boolean 类型的 isEmpty 属性来判断该字符串是否为空:
if emptyString.isEmpty {
println("什么都没有")
}
字符串可变性
将一个特定字符串分配给一个变量来对其进行修改,或分配给一个常量来保证不会被修改:
var variableString = "Horse"
variableString += "and carriage"
let constantString = "Highlander"
constantString += "and another Highlander" //编译报错
注意:
在 Swift 中,字符串是否可以修改仅通过定义的是变量还是常量来决定,实现了多种类型可变性操作的统一。
字符串是值类型
String 类型是值类型,一个字符串,在当其进行常量,变量赋值操作或在函数、方法中传递时,会进行值拷贝。任何情况下,都会对已有字符串创建新副本,并对新副本进行传递或赋值操作。
使用字符
String 类型表示特定序列的 Character 类型值的集合,你可以用 for in 来遍历字符串中的每一个字符。
for character in "Dog!" {
println(character)
}
另外, 通过表明一个 Character 类型并通过字符字面量进行复制,可以建立一个独立的字符常量或变量:
let yenSign: Character = "¥"
计算字符数量
通过条用全局 countElements 函数,可以获取字符串的字符数量
let unusualMenagerie = "Koala ,Snail, Penguin, Dromedary"
println("unusualMenagerie has \(countElements(unusualMenagerie)) characters)")
连接字符串
可以通过 “+” 来连接两个字符串
let string1 = "hello"
let string2 = " there"
var welcome = string1 + string2
你可以用“+=”在一个字符串变量后追加字符串
var instruction = "look over"
instruction += string2 // "look over there"
可以通过 String 的 append 方法在一个 String 变量后追加 Character 变量
let exclamationMark: Character = "!"
welcome.append(exclamationMark) // "hello there!"
注意:
你不能在一个 Character 变量后追加 String 或 Character,因为 Character 只能包含一个字符
字符串插值
字符串插值是一种构建新字符串的方式,可以在其中包含常量、变量、字面量和表达式。插入的字符串字面量的每一项都被包裹在“ \( )”中
let multiplier = 3
let message = "\(multiplier) times 2.5 is \(Double(multiplier) * 2.5)"
注意:
插值字符串中写在括号中的表达式不能包含非转义双引号(”)和反斜杠(\),并且不能包含回车或换行符.
比较字符串
三种比较字符串的方式:字符串相等, 前缀相等, 后缀相等
字符串相等
如果两个字符串以同一顺序包含完全相同的字符,则认为两者字符串相等
let quotation = "We‘re a lot alike, you and I"
let sameQuotation = "We‘re a lot alike, you and I"
if quotation == sameQuotation {
println("These two strings are considered equal")
}
前后缀相等
通过调用 String 的 hasPrefix / hasSuffix 方法来检查字符串是否拥有特定的前缀或后缀。
let remeoAndJuliet = [
"Act 1 Scene 1: Verona, A public place",
"Act 1 Scene 2: Capulet‘s mansion",
"Act 1 Scene 3: A room in Capulet‘s mansion",
"Act 1 Scene 4: A street outside Capulet‘s mansion",
"Act 1 Scene 5: The Great Hall in Capulet‘s mansion",
"Act 2 Scene 1: Outside Capulet‘s mansion",
"Act 2 Scene 2: Capulet‘s orchard",
"Act 2 Scene 3: Outside Friar Lawrence‘s cell",
"Act 2 Scene 4: A street in Verona",
"Act 2 Scene 5: Capulet‘s mansion",
"Act 2 Scene 6: Friar Lawrence‘s cell"
]
var act1SceneCount = 0
for scene in remeoAndJuliet {
if scene.hasPrefix("Act 1") {
++act1SceneCount;
}
}
println("There are \(act1SceneCount) scenes in Act 1")
var mansionCount = 0
var cellCount = 0
for scene in remeoAndJuliet {
if scene.hasSuffix("Capulet‘s mansion") {
++mansionCount
} else if scene.hasSuffix("Friar Lawrence‘s cell") {
++cellCount
}
}
println("\(mansionCount) mansion scenes; \(cellCount) cell scenes")
大写和小写字符串
可以通过字符串的 uppercaseString 和 lowercaseString 属性来访问大写\ 小写版本的字符串
let normal = "Could you help me, please?"
let shouty = normal.uppercaseString
let whispered = normal.lowercaseString
Swift学习笔记- 3. 字符串和字符
标签:
原文地址:http://www.cnblogs.com/kangshang/p/4293437.html