快速消除疾病

Dav*_*ODW 0 swift

我们可以在javascript中删除字符串中的所有元音,如下所示:

function disemvowel(str) {
  str = str.replace(/([aeiouAEIOU])/g, '')
  return str;
}
Run Code Online (Sandbox Code Playgroud)

我在swift中实现了相同的功能,只是好奇,怎么能像javascript一样把它写得更短?

func disemvowelTheString(string: String) -> String {
  var replacedString = string
  let vowels = ["a", "e", "i", "o", "u", "A", "E", "I", "O", "U"]

  for vowel in vowels {
    if string.containsString(vowel) {
      replacedString = replacedString.stringByReplacingOccurrencesOfString(vowel, withString: "")
    }
  }

  return replacedString
}
Run Code Online (Sandbox Code Playgroud)

Ole*_*ann 5

一个选项是filter来自输入字符串字符的任何元音:

func removeVowels(input: String) -> String {
    let vowels: [Character] = ["a", "e", "i", "o", "u", "A", "E", "I", "O", "U"]
    let result = String(input.characters.filter { !vowels.contains($0) })
    return result
}
Run Code Online (Sandbox Code Playgroud)