Swift程式檢查字串是否包含指定子字串
在Swift中,子字串是較長字串中的一小段字元序列,例如,“汽車顏色是藍色”,那麼“汽車”、“顏色”、“是”和“藍色”都是給定字串的子字串。Swift提供以下方法來檢查字串是否包含指定的子字串:
使用range(of:)方法
使用contains()方法
使用正則表示式
方法1:使用range(of:)方法
range(of:)方法用於查詢給定子字串在字串中第一次出現的範圍。因此,使用此方法,我們可以檢查給定子字串是否存在於字串中。
示例
在下面的Swift程式中,我們將檢查字串是否包含指定的子字串。為此,我們建立一個字串和我們想要搜尋的子字串。然後,我們在原始字串上呼叫range(of:substring)方法,並將子字串作為引數傳遞給它,並顯示輸出。
import Foundation
import Glibc
let OriginalString = "Sky is pink"
let subString = "is"
if OriginalString.range(of: subString) != nil
{
print("YES! Substring is found!")
} else {
print("NO! Substring is not found!")
}
輸出
YES! Substring is found!
方法2:使用contains()方法
我們還可以使用contains()方法檢查指定的字串是否包含子字串。此函式返回一個布林值,表示給定的子字串是否存在於指定的字串中。
示例
在下面的Swift程式中,我們將檢查字串是否包含指定的子字串。為此,我們建立一個字串和我們想要搜尋的子字串。然後,我們在原始字串上呼叫contains(substring)方法,並將子字串作為引數傳遞給它,並顯示輸出。
import Foundation
import Glibc
let OriginalString = "Roma likes box"
let subString = "box"
if OriginalString.contains(subString) == true
{
print("YES! Substring is found!")
} else {
print("NO! Substring is not found!")
}
輸出
YES! Substring is found!
方法3:使用正則表示式
我們還可以使用正則表示式來檢查指定的字串是否包含子字串。
示例
在下面的Swift程式中,我們將使用正則表示式來檢查字串是否包含指定的子字串。為此,我們建立一個字串和我們想要搜尋的子字串。然後,我們定義模式“\b\(subString)\b”,其中\b是邊界字元,它確保匹配是針對完整的給定單詞進行的,\(subString)將子字串的值插入到模式中。然後,建立NSRegularExpression的例項來儲存正則表示式模式。然後,我們將建立一個“rangeValue”變數來儲存我們要搜尋的主字串的範圍。之後,我們使用regexPattern.firstMatch(in:option:range)方法呼叫正則表示式物件,在給定範圍內查詢輸入字串中模式的第一個匹配項。如果找到匹配項,則它返回一個值,表示找到了給定的子字串。否則返回字串未找到。
import Foundation import Glibc let inputString = "How to write a string program?" let subString = "string" // Regex pattern let patternMatch = "\\b\(subString)\\b" let regexPattern = try! NSRegularExpression(pattern: patternMatch, options: .caseInsensitive) let rangeValue = NSRange(location: 0, length: inputString.utf16.count) if regexPattern.firstMatch(in: inputString, options: [], range: rangeValue) != nil { print("\"\(subString)\" found in the given string") } else { print("\"\(subString)\" does not found in the given string") }
輸出
"string" found in the given string
結論
這就是我們如何檢查字串是否包含指定的子字串。所有方法都返回準確的結果。因此,您可以根據您的需求或選擇使用任何方法。contains()方法的時間複雜度為O(n),其中n表示序列的長度。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP