位置:首頁 > 高級語言 > Swift教學 > Swift字符串

Swift字符串

Swift 字符串是字符有序集合,如“Hello, World!”,它們是由 Swift 的 String 數據類型表示,這也代表字符類型值的集合。

創建字符串

可以通過使用一個字符串文字或創建String類的一個實例來創建一個字符串,如下:

import Cocoa

// String creation using String literal
var stringA = "Hello, Swift!"
println( stringA )

// String creation using String instance
var stringB = String("Hello, Swift!")
println( stringB )

當上述代碼被編譯和執行時,它產生了以下結果:

Hello, Swift!
Hello, Swift!

空字符串

可以通過使用一個空字符串或創建 String 類的一個實例來創建一個空的字符串,如下所示。還可以檢查一個字符串是否為空,使用布爾屬性 isEmpty。

import Cocoa

// Empty string creation using String literal
var stringA = ""

if stringA.isEmpty {
   println( "stringA is empty" )
} else {
   println( "stringA is not empty" )
}

// Empty string creation using String instance
let stringB = String()

if stringB.isEmpty {
   println( "stringB is empty" )
} else {
   println( "stringB is not empty" )
}

當上述代碼被編譯和執行時,它產生了以下結果:

stringA is empty
stringB is empty

字符串常量

可以指定字符串是否可以修改(或突變),通過將其分配給一個變量,或者通過將其使用 let 關鍵字分配為常量,如下圖所示:

import Cocoa

// stringA can be modified
var stringA = "Hello, Swift!"
stringA + = "--Readers--"
println( stringA )

// stringB can not be modified
let stringB = String("Hello, Swift!")
stringB + = "--Readers--"
println( stringB )

當上述代碼被編譯和執行時,它產生了以下結果:

Playground execution failed: error: <EXPR>:10:1: error: 'String' is not convertible to '@lvalue UInt8'
stringB + = "--Readers--"

字符串插值

字串轉換符號是一種通過包括字符串文字內的值來構造的常量,變量,文本和表達式來組合一個新的字符串值。

每個項目(變量或常量),插入到字符串被包裹在一對括號內, 一個反斜杠前綴。下麵是簡單的例子:

import Cocoa

var varA   = 20
let constA = 100
var varC:Float = 20.0

var stringA = "\(varA) times \(constA) is equal to \(varC * 100)"
println( stringA )

當上述代碼被編譯和執行時,它產生了以下結果:

20 times 100 is equal to 2000.0

字符串連接

可以使用+運算符來連接兩個字符串或字符串和字符,或兩個字符。下麵是一個簡單的例子:

import Cocoa

let constA = "Hello,"
let constB = "World!"

var stringA = constA + constB

println( stringA )

當上述代碼被編譯和執行時,它產生了以下結果:

Hello,World!

字符串長度

Swift 中字符串冇有 length 屬性,但可以使用全局count()函數來計算字符串中的字符數。下麵是一個簡單的例子:

import Cocoa

var varA   = "Hello, Swift!"

println( "\(varA), length is \(count(varA))" )

當上述代碼被編譯和執行時,它產生了以下結果:

Hello, Swift!, length is 13

字符串比較

可以使用 == 操作符兩個比較兩個字符串變量或常量。下麵是一個簡單的例子:

import Cocoa

var varA   = "Hello, Swift!"
var varB   = "Hello, World!"

if varA == varB {
   println( "\(varA) and \(varB) are equal" )
} else {
   println( "\(varA) and \(varB) are not equal" )
}

當上述代碼被編譯和執行時,它產生了以下結果:

Hello, Swift! and Hello, World! are not equal

Unicode字符串

可以通過遍曆在 UTF8 和 UTF16 屬性訪問字符串的 UTF-8 和 UTF-16 表示,如下麵的示例:

import Cocoa

var unicodeString   = "Dog‼"

println("UTF-8 Codes: ")
for code in unicodeString.utf8 {
   print("\(code) ")
}

print("\n")

println("UTF-16 Codes: ")
for code in unicodeString.utf16 {
   print("\(code) ")
}

當上述代碼被編譯和執行時,它產生了以下結果:

UTF-8 Codes: 
68 111 103 226 128 188 240 159 144 182 
UTF-16 Codes: 
68 111 103 8252 55357 56374 

字符串函數和操作符

Swift 支持多種方法,和運算符相關的字符串:

S.No 函數/操作符及用途
1

isEmpty

返回一個布爾值,確定該字符串是否為空

2

hasPrefix(prefix: String)

函數檢查給定的參數字符串是否以 string 為前綴

3

hasSuffix(suffix: String)

函數檢查給定的參數字符串是否以 string 為後綴

4

toInt()

函數將數字字符串值轉換成整數

5

count()

全局函數用來計算字符串中的字符數

6

utf8

屬性返回一個字符串的 UTF-8 表示

7

utf16

屬性返回一個字符串的 UTF-16 表示

8

unicodeScalars

屬性返回一個字符串的 Unicode 標表示

9

+

運算符用來連接兩個字符串,或者一個字符串和一個字符或兩個字符

10

+=

操作符要追加一個字符串或字符到一個現有的字符串

11

==

操作符以確定兩個字符串是否相等

12

<

操作符進行逐一比較,計算以確定一個字符串是否為小於另一個

13

==

操作符以確定兩個字符串是否相等