ios - Swift 3.0 中 rangeOfCharacter 的使用

标签 ios swift

我正在尝试使用 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/

相关文章:

ios - React Native Navigator 转换问题

ios - 随着 View 的变化实时更新状态栏文本颜色

ios - 正确放置 dispatchGroup 以重新加载数据

ios - 在线向结构添加数据时出错(Swift)

ios - 当 UIAlertView 在屏幕上时,无法在 UIViewController 堆栈中隐藏键盘

ios - 全局访问 UIalertview 中的文本字段数据

ios - Swift: "Fatal error: newElements.underestimatedCount was an overestimate"- 这个错误是什么意思?

swift - 如何映射和过滤低于特定数字的 JSON 嵌套数据字典?

iphone - 如何从底部对齐 UILabel 文本?

ios - hmac nsdictionary - 表达 req.body