Swift 如何搜索和生成子字符串
以下是我试图用Python代码做的事情(可能是更精确的解释): 基本上,尝试在第一个空格之后创建所有内容的子字符串,而且由于Swift没有一种简单的方法使用整数索引生成子字符串,因此对我来说产生了很大的困难 以下是我在Swift中的尝试:Swift 如何搜索和生成子字符串,swift,Swift,以下是我试图用Python代码做的事情(可能是更精确的解释): 基本上,尝试在第一个空格之后创建所有内容的子字符串,而且由于Swift没有一种简单的方法使用整数索引生成子字符串,因此对我来说产生了很大的困难 以下是我在Swift中的尝试: var name:String = "#1: Joe Smith" var intIndex: Int = distance(name.startIndex, name.rangeOfString(" ").startIndex) var startIndex
var name:String = "#1: Joe Smith"
var intIndex: Int = distance(name.startIndex, name.rangeOfString(" ").startIndex)
var startIndex = advance(" ".startIndex, intIndex)
var endIndex = advance(" ".startIndex, 0)
var substring: String = name[startIndex...endIndex]
在这种情况下,不需要使用
advance
或distance
。由于您正在查找空间之后的所有内容,因此我们可以使用从rangeOfString
返回的范围中的endIndex
作为用于获取子字符串的范围的startIndex
let name = "#1: Joe Smith"
if let spaceRange = name.rangeOfString(" ") {
// Get the substring from the character after the space to the end of the string
let substring = name[spaceRange.endIndex..<name.endIndex]
println(substring) // Joe Smith
}
let name=“#1:Joe Smith”
如果让spaceRange=name.rangeOfString(“”){
//从空格后的字符到字符串末尾获取子字符串
让substring=name[spaceRange.endIndex..我想你想把整个字符串分成两个不同的部分,这样找到的第一个字符串就可以把字符串分成两个部分
extension String{
subscript(search: String ) -> [String]?{
let startIndex = self.startIndex
let endIndex = self.endIndex
let range = self.rangeOfString(search, options: NSStringCompareOptions.allZeros, range: Range(start: startIndex, end: endIndex), locale: NSLocale.currentLocale())
if let theRange = range{
let startIndex = advance(theRange.startIndex, -1)
let endRange = Range(start: theRange.endIndex, end:self.endIndex)
return [
self.substringToIndex(startIndex),
self.substringWithRange(endRange)
]
}
return nil
}
}
let a = "Hello, Mr. Andy"
a[" "]
// ["Hello", "Mr. Andy"]
let b = "My address is Tammisto, Vaanta"
join("", b["Tammisto,"]!)
// My address is Vaanta
extension String{
subscript(search: String ) -> [String]?{
let startIndex = self.startIndex
let endIndex = self.endIndex
let range = self.rangeOfString(search, options: NSStringCompareOptions.allZeros, range: Range(start: startIndex, end: endIndex), locale: NSLocale.currentLocale())
if let theRange = range{
let startIndex = advance(theRange.startIndex, -1)
let endRange = Range(start: theRange.endIndex, end:self.endIndex)
return [
self.substringToIndex(startIndex),
self.substringWithRange(endRange)
]
}
return nil
}
}
let a = "Hello, Mr. Andy"
a[" "]
// ["Hello", "Mr. Andy"]
let b = "My address is Tammisto, Vaanta"
join("", b["Tammisto,"]!)
// My address is Vaanta