Swift3.0語言教程比較、判斷字串

大學霸發表於2016-11-11

Swift3.0語言教程比較、判斷字串

Swift3.0語言教程比較、判斷字串,在一個程式中字串很多時,常常會做的操作就是對這些字串進行比較和判斷。本小節將講解這些內容。

1.不區分大小寫比較

字串比較可以分為:不區分大小寫比較、區分大小寫比較以及本地化比較三部分。首先我們來看不區分大小寫比較,不區分大小寫比較顧名思義就是不區分字串中字母的大小寫,即Aa相同。在NSString中使用caseInsensitiveCompare(_:)方法實現這一功能,其語法形式如下:

func caseInsensitiveCompare(_ string: String) -> ComparisonResult

其中,string用來指定一個比較的字串。該方法的返回值為ComparisonResult型別。ComparisonResult是一個列舉型別,包含了以下3個成員:

q  orderedAscending-1):左運算元小於右運算元。

q  orderedSame0):兩個運算元相等。

q  orderedDescending1):左運算元大於右運算元。

【示例1-29】以下將使用caseInsensitiveCompare(_:)方法對字串進行比較。

import Foundation

var a=NSString(string:"Hello")

var b=NSString(string:"hello")

var c=NSString(string:"Swift")

//比較字串

print(a.caseInsensitiveCompare(b as String).rawValue)

print(a.caseInsensitiveCompare(c as String).rawValue)

print(c.caseInsensitiveCompare(a as String).rawValue)

執行結果如下:

0

-1

1

2.區分大小寫比較

有不區分大小寫比較,相對的就有區分大小寫比較。在NSString中提供了4種方法實現了這種比較,分別為compare(_:)compare(_:options:)compare(_:options:range:)compare(_:options:range:locale:)方法。

1compare(_:)方法就是用來比較字串的,它需要區分字串的大小寫,其語法形式如下:

func compare(_ string: String) -> ComparisonResult

其中,string用來指定一個比較的字串。

【示例1-30】以下將使用compare(_:)方法實現字串的比較。

import Foundation

var a=NSString(string:"Hello")

var b=NSString(string:"hello")

var c=NSString(string:"Hello")

//比較字串

print(a.compare(b as String).rawValue)

print(a.compare(c as String).rawValue)

print(b.compare(a as String).rawValue)

執行結果如下:

-1

0

1

2compare(_:options:)方法和compare(_:)方法實現的功能類似,它是對字串進行比較,但是它比compare(_:)方法多了一個mask引數。該引數可以用來指定一個選項標記(這個標記可以作為字串比較的條件)。在程式設計中,mask引數最常被設定為以下5種:

q  caseInsensitive:不區分大小寫比較

q  literal:區分大小寫比較

q  backwards:從字串末尾開始搜尋

q  anchored:搜尋限制範圍的字串

q  numeric:按照字串裡的數字為依據,算出順序。例如 Foo2.txt < Foo7.txt < Foo25.txt

compare(_:options:)方法的語法形式如下:

func compare(_ string: String, options mask: NSString.CompareOptions = []) -> ComparisonResul

【示例1-31】以下將使用compare(_:options:)方法實現對字串的比較。

import Foundation

var a=NSString(string:"Hello")

var b=NSString(string:"hello")

print(a.compare(b as String, options: NSString.CompareOptions.caseInsensitive).rawValue)    //比較字串

執行結果如下:

0

3compare(_:options:range:)方法和compare(_:options:)方法的功能類似,但是它比compare(_:options:)方法多了一個rangeOfReceiverToCompare引數,此引數可以用來對比較範圍進行設定。其語法形式如下:

func compare(_ string: String, options mask: NSString.CompareOptions = [], range rangeOfReceiverToCompare: NSRange) -> ComparisonResult

【示例1-32】以下將使用compare(_:options:range:)方法對字串進行比較。

import Foundation

var a=NSString(string:"HEllo")

var b=NSString(string:"Swift")

print(a.compare(b as String, options: NSString.CompareOptions.caseInsensitive,range: NSMakeRange(1, 3)).rawValue)                                                                                   //比較字串

執行結果如下:

-1

4compare(_:options:range:locale:)方法和compare(_:options:range:)方法的功能類似,但是它比compare(_:options:range:)方法多了一個locale引數,此引數可以用來設定語言環境。其語法形式如下:

func compare(_ string: String, options mask: NSString.CompareOptions = [], range rangeOfReceiverToCompare: NSRange, locale: AnyObject?) -> ComparisonResult

【示例1-33】以下將使用compare(_:options:range:locale:)方法對字串進行比較。

import Foundation

var a=NSString(string:"a")

var b=NSString(string:"?")

var l=Locale.current

print(a.compare(b as String, options: NSString.CompareOptions.caseInsensitive, range: NSMakeRange(0, 1), locale: l).rawValue)

執行結果如下:

-1

3.本地化比較

對於本地化比較在NSString中提供了3種方法,分別為:localizedCaseInsensitiveCompare(_:)localizedStandardCompare(_:)localizedCompare(_:)

1localizedCaseInsensitiveCompare(_:)方法為不區分大小寫、本地化比較字串,其語法形式如下:

func localizedCompare(_ string: String) -> ComparisonResult

其中,string用來指定一個比較的字串。

【示例1-34】以下將使用localizedCaseInsensitiveCompare(_:)方法比較字串。

import Foundation

var a=NSString(string:"Hello")

var b=NSString(string:"hello")

var c=NSString(string:"Swift")

//比較字串

print(a.localizedCaseInsensitiveCompare(b as String).rawValue)

print(a.localizedCaseInsensitiveCompare(c as String).rawValue)

print(c.localizedCaseInsensitiveCompare(a as String).rawValue)

執行結果如下:

0

-1

1

2localizedStandardCompare(_:)方法為本地化標準字串的比較,其語法形式如下:

func localizedStandardCompare(_ string: String) -> ComparisonResult

其中,string用來指定一個比較的字串。

【示例1-35】以下將使用localizedStandardCompare(_:)方法實現字串的比較。

import Foundation

var a=NSString(string:"Hello")

var b=NSString(string:"hello")

print(a.localizedStandardCompare(b as String).rawValue)                                         //比較字串

執行結果如下:

1

3localizedCompare(_:)方法是區分大小寫、本地化比較字串,其語法形式如下:

func localizedCompare(_ string: String) -> ComparisonResult

其中,string用來指定一個比較的字串。

【示例1-36】以下將使用localizedCompare(_:)方法實現對字串的比較。

import Foundation

var a=NSString(string:"Hello")

var b=NSString(string:"hello")

var c=NSString(string:"Hello")

print(a.localizedCompare(b as String).rawValue)

print(a.localizedCompare(c as String).rawValue)

print(b.localizedCompare(a as String).rawValue)

執行結果如下:

1

0

-1

4.判斷字串

NSString中提供了3種對字串判斷的方法,分別為hasPrefix(_:)hasSuffix(_:)isEqual(to:)方法。

1hasPrefix(_:)方法用來判斷字串是否以某一指定字串開頭,其語法形式如下:

func hasPrefix(_ str: String) -> Bool

其中,str用來指定一個字串。

【示例1-37】以下將判斷字串a是否以"H""Hel""Hele"開頭。

import Foundation

var a=NSString(string:"Hello")

//判斷字串a是否以"H"開頭

if(a.hasPrefix("H")){

    print("a字串是以H開頭的")

}else{

    print("a字串不是以H開頭的")

}

//判斷字串a是否以"Hel"開頭

if(a.hasPrefix("Hel")){

    print("a字串是以Hel開頭的")

}else{

    print("a字串不是以Hel開頭的")

}

//判斷字串a是否以"Hele"開頭

if(a.hasPrefix("Hele")){

    print("a字串是以Hele開頭的")

}else{

    print("a字串不是以Hele開頭的")

}

執行結果如下:

a字串是以H開頭的

a字串是以Hel開頭的

a字串不是以Hele開頭的

2hasSuffix(_:)方法正好和hasPrefix(_:)方法相反,它是用來判斷字串是否以某一指定字串結尾的,其語法形式如下:

func hasSuffix(_ str: String) -> Bool

其中,str用來指定一個字串。

【示例1-38】以下將判斷字串a是否以"o""Hello""allo"結尾。

import Foundation

var a=NSString(string:"Hello")

//判斷字串a是否以"o"結尾。

if(a.hasSuffix("o")){

    print("a字串是以o結尾的")

}else{

    print("a字串不是以o結尾的")

}

//判斷字串a是否以"Hello"結尾。

if(a.hasSuffix("Hello")){

    print("a字串是以Hello結尾的")

}else{

    print("a字串不是以Hello結尾的")

}

//判斷字串a是否以"allo"結尾。

if(a.hasSuffix("allo")){

    print("a字串是以allo結尾的")

}else{

    print("a字串不是以allo結尾的")

}

執行結果如下:

a字串是以o結尾的

a字串是以Hello結尾的

a字串不是以allo結尾的

3isEqual(to:)方法是用來判斷字串是否相等的,其語法形式如下:

func isEqual(to aString: String) -> Bool

其中,aString用來指定字串。

【示例1-39】以下將判斷字串是否相等。

import Foundation

var  a=NSString(string:"Hello")

var  b=NSString(string:"hello")

var  c=NSString(string:"Swift")

var  d=NSString(string:"Hello")

//判斷字串ab是否相等

if(a.isEqual(to: b as String)){

    print("ab兩個字串相等")

}else{

    print("ab兩個字串不相等")

}

//判斷字串ac是否相等

if(a.isEqual(to: c as String)){

    print("ac兩個字串相等")

}else{

    print("ac兩個字串不相等")

}

//判斷字串ad是否相等

if(a.isEqual(to: d as String)){

    print("ad兩個字串相等")

}else{

    print("ad兩個字串不相等")

}

執行結果如下:

ab兩個字串不相等

ac兩個字串不相等

ad兩個字串相等

相關閱讀:Swift3.0語言教程獲取字串編碼與雜湊地址

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-2128288/,如需轉載,請註明出處,否則將追究法律責任。

相關文章