Swift3.0語言教程比較、判斷字串
Swift3.0語言教程比較、判斷字串
Swift3.0語言教程比較、判斷字串,在一個程式中字串很多時,常常會做的操作就是對這些字串進行比較和判斷。本小節將講解這些內容。
1.不區分大小寫比較
字串比較可以分為:不區分大小寫比較、區分大小寫比較以及本地化比較三部分。首先我們來看不區分大小寫比較,不區分大小寫比較顧名思義就是不區分字串中字母的大小寫,即A和a相同。在NSString中使用caseInsensitiveCompare(_:)方法實現這一功能,其語法形式如下:
func caseInsensitiveCompare(_ string: String) -> ComparisonResult
其中,string用來指定一個比較的字串。該方法的返回值為ComparisonResult型別。ComparisonResult是一個列舉型別,包含了以下3個成員:
q orderedAscending(-1):左運算元小於右運算元。
q orderedSame(0):兩個運算元相等。
q orderedDescending(1):左運算元大於右運算元。
【示例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:)方法。
(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兩個字串相等
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29597077/viewspace-2128288/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用帶型別判斷的比較判斷型別
- Swift3.0語言教程使用URL字串Swift字串
- Swift3.0語言教程組合字串Swift字串
- Swift3.0語言教程分割字串與擷取字串Swift字串
- C語言:判斷一個字串是否為迴文C語言字串
- Swift3.0語言教程使用路徑字串Swift字串
- Swift3.0語言教程替換子字串Swift字串
- Swift3.0語言教程獲取C字串Swift字串
- Java™ 教程(比較字串和字串的部分)Java字串
- Swift3.0語言教程獲取字串長度Swift字串
- Swift3.0語言教程字串大小寫轉化Swift字串
- Linux 比較判斷運算(if else)Linux
- 組合語言---判斷字元組合語言字元
- C語言:判斷閏年C語言
- Swift3.0語言教程使用字串建立和初始化字串Swift字串
- 流行語言的比較 (轉)
- Swift3.0語言教程字串轉換為數字值Swift字串
- C語言判斷素數,判斷質素演算法C語言演算法
- iOS版本更新比較及廣告頁展示判斷iOS
- k語言和q語言的比較
- 字串比較字串
- Swift3.0語言教程查詢字符集和子字串Swift字串
- OC,swift,javascript,Dart語言比較SwiftJavaScriptDart
- Go語言的Web框架比較GoWeb框架
- 跨語言通訊方案比較
- 幽默:程式語言與遊戲比較遊戲
- 判斷水仙花數C語言C語言
- 字串-簡單字串比較字串
- 比較字串和數字串字串
- PHP比較字串PHP字串
- JAVA字串比較Java字串
- PHP字串包含判斷PHP字串
- bash中字串判斷字串
- Swift3.0語言教程字串與檔案的資料轉換Swift字串
- Swift3.0語言教程使用編碼建立和初始化字串Swift字串
- Swift3.0語言教程使用指標建立和初始化字串Swift指標字串
- Swift3.0語言教程獲取字串編碼與雜湊地址Swift字串編碼
- 一個程式語言比較網站網站