我正在尝试使用 rangeOfCharacter 创建应用程序,但无法理解其文档:
func rangeOfCharacter(from: CharacterSet, options:
String.CompareOptions, range: Range<String.Index>?)
-Finds and returns the range in the String of the first character from
a given character set found in a given range with given options.
文档链接:https://developer.apple.com/documentation/swift/string#symbols
我正在做一个练习,创建一个函数,该函数将接受一个名称并返回该名称,减去第一个元音之前的任何辅音。如果第一个元音之前没有辅音,则应原样返回名称。
下面是我到目前为止的代码:
func shortNameFromName(name: String) -> String {
var shortName = name.lowercased()
let vowels = "aeiou"
let vowelRange = CharacterSet(charactersIn: vowels)
rangeOfCharacter(from: vowels, options: shortName,
range: substring(from: shortName[0]))
非常感谢任何帮助。对新手的错误表示歉意。
最佳答案
我讨厌 swift 范围。但希望 Swift 4 会让事情变得更好。
let name = "Michael"
var shortName = name.lowercased()
let vowels = "aeiou"
let vowelSet = CharacterSet(charactersIn: vowels)
let stringSet = shortName
if let range = stringSet.rangeOfCharacter(from: vowelSet, options: String.CompareOptions.caseInsensitive)
{
let startIndex = range.lowerBound
let substring = name.substring(from: range.lowerBound)
print(substring)
}
关于ios - Swift 3.0 中 rangeOfCharacter 的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45365116/