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

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

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

1.不區分大小寫比較編碼

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

func caseInsensitiveCompare(_ string: String) -> ComparisonResult.net

其中,string用來指定一個比較的字符串。該方法的返回值爲ComparisonResult類型。ComparisonResult是一個枚舉類型,包含了如下3個成員:blog

q  orderedAscending(-1):左操做數小於右操做數。教程

q  orderedSame(0):兩個操做數相等。字符串

q  orderedDescending(1):左操做數大於右操做數。get

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

import Foundationit

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:)方法。

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

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

(2)compare(_: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

(3)compare(_: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

(4)compare(_: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(_:)。

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

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

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

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

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

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:)方法。

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

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開頭的

(2)hasSuffix(_:)方法正好和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結尾的

(3)isEqual(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")

//判斷字符串a和b是否相等

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

    print("a、b兩個字符串相等")

}else{

    print("a、b兩個字符串不相等")

}

//判斷字符串a和c是否相等

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

    print("a、c兩個字符串相等")

}else{

    print("a、c兩個字符串不相等")

}

//判斷字符串a和d是否相等

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

    print("a、d兩個字符串相等")

}else{

    print("a、d兩個字符串不相等")

}

運行結果以下:

a、b兩個字符串不相等

a、c兩個字符串不相等

a、d兩個字符串相等

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

相關文章
相關標籤/搜索