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
}
查找字符串中第一个非空白字符的索引