字符
let money: Character = "¥"
var face: Character = "��"
println(money + face) // 结果为¥��
字符串
Swift中的字符串不是指针,而是实际的值
let someString = "ABC"
var someStr = "ABC"
/*
字符串常量可以包括下面这些特殊字符:
空字符\0,反斜杠\,制表符\t,换行符\n,回车符\r,双引号\”和单引号\’
单字节Unicode字符,\xnn,其中nn是两个十六进制数
双字节Unicode字符,\unnnn,其中nnnn是四个十六进制数
四字节Unicode字符,\Unnnnnnnn,其中nnnnnnnn是八个十六进制数
*/
let words = " \" "
let dollarSign = "\x24" //$
let blackHeart = "\u2665" //♥
let sparkHeart = "\U0001F496" //��
//初始化空的字符串
var emptyString = ""
var anotherEmptyString = String()
//检查字符串是否为空
if emptyString.isEmpty {
println("Nothing to see here")
}
//变长字符串
var variableString = "Horse"
variableString += " and carriage"
println(variableString)
let constantString = ""
//constantString += "123" //错误, constantString 是常量
//4.字符计数
//在Swift里面,使用countElements来计算一个字符串中的字符的数量
let countStr = "wo love iOS and swift"
println("countStr count is \(countElements(countStr))")
/*
注意:通过 countElements 返回的字符数量并不总是与包含相同字符的 NSString 的 length 属性相同。NSString 的 length 属性是基于利用 UTF-16 编码的数目,而不是基于 Unicode 字符
//Swift 中的字符在一个字符串中 并不一定占用相同的内存空间,需使用全局函数countElements计算一个字符串中字符的数量
*/
//5.组合字符串与字符
let string1 = "hello"
let string2 = " there"
let character1: Character = "!"
let character2: Character = "?"
let stringPlusCharacter = string1 + character1 // hellohello
let stringPlusString = string1 + string2 // hello there
let characterPlusString = character1 + string1 // !hello
let characterPlusCharacter = character1 + character2 // !?
//6.字符串格式化
let sum = 3
println("sum is \(sum), sum double is \(Double(sum) * 2.5)")
字符串比较
Swift提供三种方法比较字符串的值:字符串相等,前缀相等,和后缀相等
//1字符串相等
let someStr1 = "ABC"
let someStr2 = "ABC"
if someStr1 == someStr2 {
println("someStr1 == someStr2")
}
//2前缀相等
let animals = ["食肉:老虎", "食肉:狮子", "食草:牛群", "食草:羊群", "食草:马群"]
var aCount = 0
var bCount = 0
for animal in animals {
if animal.hasPrefix("食肉"){ //前缀相等
++aCount
}
if animal.hasSuffix("群"){ //后缀相等
++bCount
}
}
println("这有\(aCount)头食肉动物")
println("这有\(bCount)群食草动物")
字符串大小写
let normal = "Could you help me, please?"
let shouty = normal.uppercaseString //大写
let whispered = normal.lowercaseString //小写
字符串编码
let dogString = "Dog!��"
//utf-8
for codeUnit in dogString.utf8 {
print("\(codeUnit) ") // 68 111 103 33 240 159 144 182
}
print("\n")
//utf-16
for codeUnit in dogString.utf16 {
print("\(codeUnit) ") // 68 111 103 33 55357 56374
}
print("\n")
//unicode 标量
for scalar in dogString.unicodeScalars {
// print("\(scalar)")
print("\(scalar.value) ") // 68 111 103 33 128054
}