Swift學習筆記(4)--字符串及基本使用


String是例如“hello, world”,“海賊王” 這樣的有序的Character(字符)類型的值的集合,通過String類型來表示。

Swift 的String類型與 Foundation NSString類進行了無縫橋接。如果您利用 Cocoa 或 Cocoa Touch 中的 Foundation 框架進行工作。所有NSString API 都可以調用您創建的任意String類型的值。除此之外,還可以使用本章介紹的String特性。您也可以在任意要求傳入NSString實例作為參數的 API 中使用String類型的值作為替代

 注:Swift 的String類型是值類型。 如果您創建了一個新的字符串,那么當其進行常量、變量賦值操作或在函數/方法中傳遞時,會進行值拷貝。 任何情況下,都會對已有字符串值創建新副本,並對該新副本進行傳遞或賦值操作。

 

1.字符串定義

  var s = "abc"

  var s1:String = "abc"  

 

// 兩個字符串均為空並等價。
var emptyString = ""               // 空字符串字面量
var anotherEmptyString = String()  // 初始化 String 實例

 

  字符串字面量可以包含以下特殊字符:

    • 轉義字符\0(空字符)、\\(反斜線)、\t(水平制表符)、\n(換行符)、\r(回車符)、\"(雙引號)、\'(單引號)。
    • 單字節 Unicode 標量,寫成\xnn,其中nn為兩位十六進制數。
    • 雙字節 Unicode 標量,寫成\unnnn,其中nnnn為四位十六進制數。
    • 四字節 Unicode 標量,寫成\Unnnnnnnn,其中nnnnnnnn為八位十六進制數。
let wiseWords = "\"我是要成為海賊王的男人\" - 路飛"
// "我是要成為海賊王的男人" - 路飛
let dollarSign = "\x24"                // $,  Unicode 標量 U+0024
let blackHeart = "\u2665"              // ♥,  Unicode 標量 U+2665
let sparklingHeart = "\U0001F496"    // 💖, Unicode 標量 U+1F496

 

2.字符串拼接

//字符串拼接
var x = "x"
var y = "y"
var z = x + y
var m = z + "m"
var n = "n"
n += m

//使用\()完成字符串的插值
var result = "\(x)==\(y)==\(z)==\(m)==\(n)"
println(result)//結果:x==y==xy==xym==nxym

//字符串與字符拼接
let s1 = "hello"
let c1: Character = "!"
let plus1 = s1 + c1        // 等於 "hello!"
let plus2 = c1 + s1        // 等於 "!hello"

  

3.字符串遍歷

var myString = "This is a string"

for character in myString{
   println(character)
}

  

4.字符個數統計

var myString = "Here is my string, lets count the characters!"
println(myString.characters.count)

  

5.字符串比較 & 是否包含前后綴

var check1:String = "Swift is good!"
var check2:String = "Swift is good!"

//字符串是否相等
if check1 == check2 {
    println("check1 = check2")
} else {
    println("check1 != check2")
}

//是否包含前綴
var preCheck = "Swift"
if check1.hasPrefix(preCheck) {
    println("包含前綴")
}

//是否包含后綴
var sufCheck = "good!"
if check1.hasSuffix(sufCheck) {
    println("包含后綴")
}

  

6.大小寫轉換

let myString = "Wait a moment, please."
let newString = myString.uppercaseString
//The string is now "WAIT A MOMENT, PLEASE."

let myString = "Wait a moment, please."
let newString = myString.lowercaseString
// The string is now "wait a moment, please."

  

7.字符串是否包含其他字符串

var myString = "This is a string test"
if myString.rangeOfString("string") {
    println("exists")
}

  

8.字符串截取

//截取字符串的標識位從1開始計數
let myString = "ABCDEFGHI"

//1.從目標標識位后一個字符開始截取余下的字符串
let mySubstring = (myString.substringFromIndex(2))
println(mySubstring)    // "CDEFGHI"

//2.從第一個字符截取到目標標識位
let mySubstring2 = (myString.substringToIndex(4))
println(mySubstring2)   // "ABCD"

  

9.字符串去空格

var myString = "    Let's trim the whitespace    "
var newString = myString.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())

  

10.字符串分割為字符串數組

//單一分隔符:只有一種分割符
var myString = "Berlin, Paris, New York, San Francisco"

//1.隱式定義字符串數組
var myArray = myString.componentsSeparatedByString(",")

//2.顯示定義字符串數組
var myArray2 : String[] = myString.componentsSeparatedByString(", ")

for em in myArray2 {
    print(em)   //Berlin Paris New York San
}


//多重分割符:有2個或兩個以上分隔符
var myString2 = "One-Two-Three-1 2 3"

var array2:String[] = myString2.componentsSeparatedByCharactersInSet(NSCharacterSet (charactersInString: "- "))
//["One", "Two", "Three", "1", "2", "3"]

  

11.字符串轉換為NSData

let myString = "String to encode"
let string: NSString = myString
let data = string.dataUsingEncoding(NSUTF8StringEncoding)

  

 

 

參考文章:http://www.learnswiftonline.com/reference-guides/string-reference-guide-for-swift/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM