您的位置:首页 > 移动开发 > Swift

swift中字符与字符串(Character和String)

2015-02-11 14:33 246 查看
字符

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
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐