Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何搜索和生成子字符串_Swift - Fatal编程技术网

Swift 如何搜索和生成子字符串

Swift 如何搜索和生成子字符串,swift,Swift,以下是我试图用Python代码做的事情(可能是更精确的解释): 基本上,尝试在第一个空格之后创建所有内容的子字符串,而且由于Swift没有一种简单的方法使用整数索引生成子字符串,因此对我来说产生了很大的困难 以下是我在Swift中的尝试: var name:String = "#1: Joe Smith" var intIndex: Int = distance(name.startIndex, name.rangeOfString(" ").startIndex) var startIndex

以下是我试图用Python代码做的事情(可能是更精确的解释):

基本上,尝试在第一个空格之后创建所有内容的子字符串,而且由于Swift没有一种简单的方法使用整数索引生成子字符串,因此对我来说产生了很大的困难

以下是我在Swift中的尝试:

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