String 如何查找字符串中任何第一个字符的索引,而不是swift中的空白?

String 如何查找字符串中任何第一个字符的索引,而不是swift中的空白?,string,swift,String,Swift,有以空格开头的字符串。如何在这些字符串中找到除空格以外的任何第一个字符的索引?您可以尝试以下扩展: extension String { public func indexOfCharacter(char: Character) -> Int? { if let index = self.characters.indexOf(char) where String(char) != " "{ return self.startIndex.dis

有以空格开头的字符串。如何在这些字符串中找到除空格以外的任何第一个字符的索引?

您可以尝试以下扩展:

extension String {
    public func indexOfCharacter(char: Character) -> Int? {
        if let index = self.characters.indexOf(char) where String(char) != " "{
            return self.startIndex.distanceTo(index)
        }
        return nil
    }
}
let isWhiteSpace = char.isMemberOfSet(NSCharacterSet.whitespaceCharacterSet())
您还可以使用扩展名来确定字符是否为空白。来源

这样称呼:

extension String {
    public func indexOfCharacter(char: Character) -> Int? {
        if let index = self.characters.indexOf(char) where String(char) != " "{
            return self.startIndex.distanceTo(index)
        }
        return nil
    }
}
let isWhiteSpace = char.isMemberOfSet(NSCharacterSet.whitespaceCharacterSet())

您可以尝试这样的扩展:

extension String {
    public func indexOfCharacter(char: Character) -> Int? {
        if let index = self.characters.indexOf(char) where String(char) != " "{
            return self.startIndex.distanceTo(index)
        }
        return nil
    }
}
let isWhiteSpace = char.isMemberOfSet(NSCharacterSet.whitespaceCharacterSet())
您还可以使用扩展名来确定字符是否为空白。来源

这样称呼:

extension String {
    public func indexOfCharacter(char: Character) -> Int? {
        if let index = self.characters.indexOf(char) where String(char) != " "{
            return self.startIndex.distanceTo(index)
        }
        return nil
    }
}
let isWhiteSpace = char.isMemberOfSet(NSCharacterSet.whitespaceCharacterSet())
您可以对谓词使用
indexOf()

let str = "   Hello world"

// Swift 2:
if let index = str.characters.indexOf({ $0 != " "}) {
    print(index) // 3
}

// Swift 3:
if let index = str.characters.index(where: { $0 != " "}) {
    let pos = str.distance(from: str.startIndex, to: index)
    print(pos) // 3
}
或者,使用正则表达式搜索,可以 适应更一般的要求,例如

// Swift 2:
if let range = str.rangeOfString("\\S", options: .RegularExpressionSearch) {
    let index = str.startIndex.distanceTo(range.startIndex)
    print(index) // 3
}

// Swift 3:
if let range = str.range(of: "\\S", options: .regularExpression) {
    let pos = str.distance(from: str.startIndex, to: range.lowerBound)
    print(pos) // 3
}
要查找字符串中第一个非空白字符的索引。

可以将
indexOf()
与谓词一起使用:

let str = "   Hello world"

// Swift 2:
if let index = str.characters.indexOf({ $0 != " "}) {
    print(index) // 3
}

// Swift 3:
if let index = str.characters.index(where: { $0 != " "}) {
    let pos = str.distance(from: str.startIndex, to: index)
    print(pos) // 3
}
或者,使用正则表达式搜索,可以 适应更一般的要求,例如

// Swift 2:
if let range = str.rangeOfString("\\S", options: .RegularExpressionSearch) {
    let index = str.startIndex.distanceTo(range.startIndex)
    print(index) // 3
}

// Swift 3:
if let range = str.range(of: "\\S", options: .regularExpression) {
    let pos = str.distance(from: str.startIndex, to: range.lowerBound)
    print(pos) // 3
}
查找字符串中第一个非空白字符的索引