iOS中rangeofstring如何處理字符串分割

iOS
小樊
81
2024-10-10 03:59:41

在iOS中,你可以使用rangeOfString方法來(lái)查找一個(gè)字符串在另一個(gè)字符串中的位置,這個(gè)方法會(huì)返回一個(gè)NSRange結(jié)構(gòu)體,其中包含了子字符串在父字符串中的起始位置和結(jié)束位置(不包含結(jié)束位置本身)。如果你想要使用rangeOfString來(lái)進(jìn)行字符串分割,你可以通過(guò)檢查返回的NSRange的結(jié)束位置來(lái)實(shí)現(xiàn)。

以下是一個(gè)簡(jiǎn)單的示例代碼,展示了如何使用rangeOfString來(lái)分割字符串:

let parentString = "Hello, how are you?"
let subString = "how"

if let range = parentString.range(of: subString) {
    let startIndex = range.location
    let endIndex = range.location + subString.utf16.count
    let splitString = String(parentString[startIndex..<endIndex])
    print("Split string: \(splitString)")
} else {
    print("Substring not found")
}

在這個(gè)示例中,我們首先定義了一個(gè)父字符串和一個(gè)子字符串。然后,我們使用range(of:)方法來(lái)查找子字符串在父字符串中的位置。如果找到了子字符串,我們就獲取它的起始和結(jié)束位置,并使用這些位置來(lái)從父字符串中提取分割后的子字符串。最后,我們打印出分割后的子字符串。

需要注意的是,rangeOfString方法是區(qū)分大小寫(xiě)的,所以如果你想要進(jìn)行不區(qū)分大小寫(xiě)的分割,你需要在查找之前將父字符串和子字符串都轉(zhuǎn)換為小寫(xiě)(或大寫(xiě)):

let parentString = "Hello, How Are You?"
let subString = "how"

if let range = parentString.lowercased().range(of: subString.lowercased()) {
    // ...
}

另外,如果你想要分割一個(gè)字符串為多個(gè)子字符串,你可以重復(fù)使用rangeOfString方法,直到找不到子字符串為止。每次找到一個(gè)子字符串后,你都可以使用相應(yīng)的位置來(lái)提取它,并將其存儲(chǔ)在一個(gè)數(shù)組中。

0