String Swift是否有一种方法可以在另一个字符串中给出子字符串的索引

String Swift是否有一种方法可以在另一个字符串中给出子字符串的索引,string,macos,swift,swift-extensions,String,Macos,Swift,Swift Extensions,是否有任何现有函数在另一个字符串中查找子字符串的索引?类似于.indexOfSubstringthank的方法可执行以下操作: let word: String = "Hey there, how are you?" let indexOf: Int = word.indexOfSubstring("ere, how are") println("index = " + \(indexOf)) 和打印: index = 6 您可以使用rangeOfString方法: import Fou

是否有任何现有函数在另一个字符串中查找子字符串的索引?类似于
.indexOfSubstring
thank的方法可执行以下操作:

let word: String = "Hey there, how are you?"

let indexOf: Int = word.indexOfSubstring("ere, how are")

println("index = " + \(indexOf))
和打印:

index = 6

您可以使用
rangeOfString
方法:

import Foundation

let word: String = "Hey there, how are you?"

if let range = word.rangeOfString("ere, how are") {
    let index = distance(word.startIndex, range.startIndex)
    println("index = \(index)")
}
它返回一个范围,即搜索字符串的两侧-只需使用
startIndex
属性即可


请注意,这是从
NSString
借用的方法。您可以使用
rangeOfString
方法:

import Foundation

let word: String = "Hey there, how are you?"

if let range = word.rangeOfString("ere, how are") {
    let index = distance(word.startIndex, range.startIndex)
    println("index = \(index)")
}
它返回一个范围,即搜索字符串的两侧-只需使用
startIndex
属性即可


请注意,这是从
NSString
借用的方法。您可以使用
rangeOfString
方法:

import Foundation

let word: String = "Hey there, how are you?"

if let range = word.rangeOfString("ere, how are") {
    let index = distance(word.startIndex, range.startIndex)
    println("index = \(index)")
}
它返回一个范围,即搜索字符串的两侧-只需使用
startIndex
属性即可


请注意,这是从
NSString
借用的方法。您可以使用
rangeOfString
方法:

import Foundation

let word: String = "Hey there, how are you?"

if let range = word.rangeOfString("ere, how are") {
    let index = distance(word.startIndex, range.startIndex)
    println("index = \(index)")
}
它返回一个范围,即搜索字符串的两侧-只需使用
startIndex
属性即可


请注意,这是从NSString借用的方法,Swift中没有内置方法。您需要自己实现它。这方面的另一个实现是

/// Get the start index of string
///
/// :return start index of .None if not found
public func indexOf(str: String) -> Int? {
    return self.indexOfRegex(Regex.escapeStr(str))
}

/// Get the start index of regex pattern
///
/// :return start index of .None if not found
public func indexOfRegex(pattern: String) -> Int? {
    if let range = Regex(pattern).rangeOfFirstMatch(self).toRange() {
        return range.startIndex
    }
    return .None
}
这段代码来自这个库,该库对常见的swift类型(如String)具有一系列扩展

您可以根据使用情况签出文档
Swift中没有内置方法。您需要自己实现它。这方面的另一个实现是

/// Get the start index of string
///
/// :return start index of .None if not found
public func indexOf(str: String) -> Int? {
    return self.indexOfRegex(Regex.escapeStr(str))
}

/// Get the start index of regex pattern
///
/// :return start index of .None if not found
public func indexOfRegex(pattern: String) -> Int? {
    if let range = Regex(pattern).rangeOfFirstMatch(self).toRange() {
        return range.startIndex
    }
    return .None
}
这段代码来自这个库,该库对常见的swift类型(如String)具有一系列扩展

您可以根据使用情况签出文档
Swift中没有内置方法。您需要自己实现它。这方面的另一个实现是

/// Get the start index of string
///
/// :return start index of .None if not found
public func indexOf(str: String) -> Int? {
    return self.indexOfRegex(Regex.escapeStr(str))
}

/// Get the start index of regex pattern
///
/// :return start index of .None if not found
public func indexOfRegex(pattern: String) -> Int? {
    if let range = Regex(pattern).rangeOfFirstMatch(self).toRange() {
        return range.startIndex
    }
    return .None
}
这段代码来自这个库,该库对常见的swift类型(如String)具有一系列扩展

您可以根据使用情况签出文档
Swift中没有内置方法。您需要自己实现它。这方面的另一个实现是

/// Get the start index of string
///
/// :return start index of .None if not found
public func indexOf(str: String) -> Int? {
    return self.indexOfRegex(Regex.escapeStr(str))
}

/// Get the start index of regex pattern
///
/// :return start index of .None if not found
public func indexOfRegex(pattern: String) -> Int? {
    if let range = Regex(pattern).rangeOfFirstMatch(self).toRange() {
        return range.startIndex
    }
    return .None
}
这段代码来自这个库,该库对常见的swift类型(如String)具有一系列扩展

您可以根据使用情况签出文档

为什么它抱怨“String”没有名为“rangeOfString”的成员?对于memaybe来说,它应该是
range
,而不是
ranger
,除非你的评论中有打字错误:)sry是打字错误,我把你的代码复制到了游乐场。但是仍然有这个错误你导入Cocoa了吗?注意
range.startIndex
字符串.Index
而不是
Int
。我建议
如果let range=word.rangeOfString(“…”{let index=distance(word.startIndex,range.startIndex);println(“index=\(index)”)}
。为什么它抱怨“String”没有名为“rangeOfString”的成员?对于memaybe来说,它应该是
range
,而不是
ranger
,除非你的评论中有打字错误:)sry是打字错误,我把你的代码复制到了游乐场。但是仍然有这个错误你导入Cocoa了吗?注意
range.startIndex
字符串.Index
而不是
Int
。我建议
如果let range=word.rangeOfString(“…”{let index=distance(word.startIndex,range.startIndex);println(“index=\(index)”)}
。为什么它抱怨“String”没有名为“rangeOfString”的成员?对于memaybe来说,它应该是
range
,而不是
ranger
,除非你的评论中有打字错误:)sry是打字错误,我把你的代码复制到了游乐场。但是仍然有这个错误你导入Cocoa了吗?注意
range.startIndex
字符串.Index
而不是
Int
。我建议
如果let range=word.rangeOfString(“…”{let index=distance(word.startIndex,range.startIndex);println(“index=\(index)”)}
。为什么它抱怨“String”没有名为“rangeOfString”的成员?对于memaybe来说,它应该是
range
,而不是
ranger
,除非你的评论中有打字错误:)sry是打字错误,我把你的代码复制到了游乐场。但是仍然有这个错误你导入Cocoa了吗?注意
range.startIndex
字符串.Index
而不是
Int
。我建议
如果let range=word.rangeOfString(“…”{let index=distance(word.startIndex,range.startIndex);println(“index=\(index)”)}
。或多或少是的副本这个问题是关于寻找一个字符的,但答案也适用于寻找字符串。或多或少是重复的这个问题是关于寻找一个字符的,但答案也适用于寻找字符串。或多或少是重复的这个问题是关于寻找一个字符的,但答案也适用于寻找字符串。或多或少是重复的这个问题是关于查找字符的,但答案也适用于查找字符串。