Swift說話中字符串相干的根本概念解析。本站提示廣大學習愛好者:(Swift說話中字符串相干的根本概念解析)文章只能為提供參考,不一定能成為您想要的結果。以下是Swift說話中字符串相干的根本概念解析正文
Swift 的字符是一個單一的字符串文字而且是字符數據類型。上面是一個簡略的例子,應用了兩種字符常量:
import Cocoa
let char1: Character = "A"
let char2: Character = "B"
println("Value of char1 \(char1)")
println("Value of char2 \(char2)")
當上述代碼被編譯和履行時,它發生了以下成果:
Value of char1 A Value of char2 B
假如測驗考試存儲多個字符到字符類型的變量或常量,那末 Swift 是不會許可的。試著鍵入上面的示例到 Swift Playground,在編譯之前,就曾經會獲得一個毛病。
import Cocoa
// Following is wrong in Swift
let char: Character = "AB"
println("Value of char \(char)")
空字符變量
弗成能創立一個空的字符變量或常量,這將有空值。上面的語法是弗成能的:
import Cocoa
// Following is wrong in Swift
let char1: Character = ""
var char2: Character = ""
println("Value of char1 \(char1)")
println("Value of char2 \(char2)")
從字符串拜訪字符
當評論辯論 Swift 的字符串,字符串表現的字符值按指定次序的聚集。是以,我們可以從給定字符通同過 for-in 輪回來遍歷字符串以拜訪單個字符:
import Cocoa
for ch in "Hello" {
println(ch)
}
當上述代碼被編譯和履行時,它發生了以下成果:
H e l l o
應用字符銜接字符串
上面的例子演示了 Swift 字符若何與字符串聯接。
import Cocoa
var varA:String = "Hello "
let varB:Character = "G"
varA.append( varB )
println("Value of varC = \(varA)")
當上述代碼被編譯和履行時,它發生了以下成果:
Value of varC Hello G
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