私はSwift(自己学習しようとする)にはかなり新しいです。文字列をパラメータとしてとり、最初の母音の前に子音があるかどうかを調べ、母音がある場合はそれを削除する関数を作成しようとしています。したがって、ユーザがマイケルとして自分の名前を入力すると、イーヤエルがプリントアウトします。試してみてくださいこの文字列を取り、最初の母音の前に子音を取り除く関数を書く方法
func shortNameForName(name: String) -> String {
let vowel = "aeiou" // Maybe add the 'y'
let shortName = name.lowercaseString
let firstLetter = shortName.[shortName.startIndex]
if vowel.rangeOfString(firstLetter) != nil {
shortName.remove(at: shortName.startIndex)
}
return shortName
}
PSを
func shortName(for name: String) -> String {
// regular expression for consonants (= not vowels) in the beginning
let regularExpression = "^[^aeiou]+"
guard let firstVowelRange = name.range(
of: regularExpression,
options: [.caseInsensitive, .regularExpression],
range: nil
) else {
return name
}
// if the reg exp matched something, remove it
return name.substring(from: firstVowelRange.upperBound)
}
print(shortName(for: "Michael"))
print(shortName(for: "MMMichael"))
あなたはString.indexにいくつかのグーグルを行うことをお勧めします。最初の母音の位置にインデックスを関連付けることができます。その後、そのインデックスから文字列の最後まで部分文字列を取ります。 – BallpointBen