Swift 语言基础(2)-字符和字符串

字符串字面量

let someString = "Some string literal value"

 let wiseWords = "\"Imagination is more important than knowledge\" - Einstein"
 // "Imagination is more important than knowledge" - Einstein
 let dollarSign = "\x24" // $, Unicode scalar U+0024
 let blackHeart = "\u2665" // , Unicode scalar U+2665
 let sparklingHeart = "\U0001F496" // , □,Unicode scalar U+1F496

初始化空字符串

var emptyString = "" // empty string literal
 var anotherEmptyString = String() // initializer syntax
 // these two strings are both empty, and are equivalent to each other

 if emptyString.isEmpty {
 println("Nothing to see here")
 }
 // prints "Nothing to see here"

字符串可变性
var variableString = "Horse"
 variableString += " and carriage"
 // variableString is now "Horse and carriage"

let constantString = "Highlander"
 constantString += " and another Highlander"
 // this reports a compile-time error - a constant string cannot be modified


字符串是值类型

Swift’s String type is a value type. If you create a new String value, that String value
is copied when it is passed to a function or method, or when it is assigned to a
constant or variable. In each case, a new copy of the existing String value is
created, and the new copy is passed or assigned, not the original version.


字符处理

 for character in "Dog!□" {
 println(character)
 }
 // D
 // o
 // g
 // !
 // □

let yenSign: Character = "¥"

字符计数

 let unusualMenagerie = "Koala , Snail , Penguin , Dromedary "
 println("unusualMenagerie has \(countElements(unusualMenagerie)) characters")
 // prints "unusualMenagerie has 40 characters"

连接字符串和字符

let string1 = "hello"
 let string2 = " there"
 let character1: Character = "!"
 let character2: Character = "?"
let stringPlusCharacter = string1 + character1 // equals "hello!"
 let stringPlusString = string1 + string2 // equals "hello there"
let characterPlusString = character1 + string1 // equals "!hello"
let characterPlusCharacter = character1 + character2 // equals "!?"

var instruction = "look over"
 instruction += string2
 // instruction now equals "look over there"
var welcome = "good morning"
 welcome += character1
 // welcome now equals "good morning!"


字符串插补


let multiplier = 3
  let message = " \( multiplier ) times 2.5 is \( Double ( multiplier ) * 2.5 ) "
 // message is "3 times 2.5 is 7.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")
 }
 // prints "These two strings are considered equal"


 let romeoAndJuliet = [
 "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
 fo r scene in romeoAndJuliet {
 if scene.hasPrefix("Act 1 ") {
    ++act1SceneCount
 }
 }


println("There are \(act1SceneCount) scenes in Act 1")
 // prints "There are 5 scenes in Act 1"

var mansionCount = 0
 var cellCount = 0
 for scene in romeoAndJuliet {
 if scene.hasSuffix("Capulet's mansion") {

 ++mansionCount
 } else if scene.hasSuffix("Friar Lawrence's cell") {
 ++cellCount
 }
 }
println("\(mansionCount) mansion scenes; \(cellCount) cell scenes")
// prints "6 mansion scenes; 2 cell scenes"


字符串大小写转换

 let normal = "Could you help me, please?"
 let shouty = normal.uppercaseString
 // shouty is equal to "COULD YOU HELP ME, PLEASE?"
 let whispered = normal.lowercaseString
 // whispered is equal to "could you help me, please?"


utf

 for codeUnit in dogString.utf8 {
 print("\(codeUnit) ")
 }
 print("\n")
 // 68 111 103 33 240 159 144 182


 for codeUnit in dogString.utf16 {
print("\(codeUnit) ")
 }
 print("\n")
 // 68 111 103 33 55357 56374


 for scalar in dogString.unicodeScalars {
 print("\(scalar.value) ")
 }
 print("\n")
 // 68 111 103 33 128054



 for scalar in dogString.unicodeScalars {
 println("\(scalar) ")
 }
 // D
 // o
 // g
 // !
 //□ 













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值