Swift3 返回指定字符后的子字符串

Swift3 返回指定字符后的子字符串,swift3,Swift3,如果我有一个字符串,例如spider,如何创建一个从第一个元音开始并以初始字符串的最后一个字符结束的新字符串 例如: -蜘蛛更合适 -大象就是大象 -校园将是安瓿 谢谢您的帮助。试试这个小功能 func firstVowel(input : String) -> String { var firstVowel = true let vowels = "aAeEiIoOuU".characters var result = "" for char in in

如果我有一个字符串,例如spider,如何创建一个从第一个元音开始并以初始字符串的最后一个字符结束的新字符串

例如: -蜘蛛更合适 -大象就是大象 -校园将是安瓿


谢谢您的帮助。

试试这个小功能

func firstVowel(input : String) -> String {
    var firstVowel = true
    let vowels = "aAeEiIoOuU".characters
    var result = ""

    for char in input.characters {

        if(!firstVowel) {
            result.append(char)
        }

        if(vowels.contains(char) && firstVowel) {
            firstVowel = false
            result.append(char)
        }
    }
    return result
}

print(firstVowels(input: "elephant")) //prints elephant
print(firstVowels(input: "Spider")) //prints ider

试试这个小功能

func firstVowel(input : String) -> String {
    var firstVowel = true
    let vowels = "aAeEiIoOuU".characters
    var result = ""

    for char in input.characters {

        if(!firstVowel) {
            result.append(char)
        }

        if(vowels.contains(char) && firstVowel) {
            firstVowel = false
            result.append(char)
        }
    }
    return result
}

print(firstVowels(input: "elephant")) //prints elephant
print(firstVowels(input: "Spider")) //prints ider

使用自定义
字符集
作为
字符串
扩展名的简单解决方案

extension String {

    func substringFromFirstVowel() -> String
    {
        let vowelCharacterSet = CharacterSet(charactersIn: "aeiouAEIOU")
        guard let range = self.rangeOfCharacter(from: vowelCharacterSet) else { return self }
        return self.substring(from: range.lowerBound)
    }
}


"elephant".substringFromFirstVowel() // elephant
"spider".substringFromFirstVowel() // ider
"campus".substringFromFirstVowel() // ampus 

使用自定义
字符集
作为
字符串
扩展名的简单解决方案

extension String {

    func substringFromFirstVowel() -> String
    {
        let vowelCharacterSet = CharacterSet(charactersIn: "aeiouAEIOU")
        guard let range = self.rangeOfCharacter(from: vowelCharacterSet) else { return self }
        return self.substring(from: range.lowerBound)
    }
}


"elephant".substringFromFirstVowel() // elephant
"spider".substringFromFirstVowel() // ider
"campus".substringFromFirstVowel() // ampus 

嗯,用完全相同的解决方案比我快,甚至函数名也是一样的。唯一的区别是我使用了<代码>选项:.CaseNeimaby。@ Sulthan,谢谢提示,但是。CaseNeXistaby<代码>似乎不考虑字符集。@ VADANTIN有趣。
String
API的另一个怪癖。。。无论如何,我可能会使用
[aeiou]
正则表达式:)嗯,使用完全相同的解决方案比我快,甚至函数名也是一样的。唯一的区别是我使用了<代码>选项:.CaseNeimaby。@ Sulthan,谢谢提示,但是。CaseNeXistaby<代码>似乎不考虑字符集。@ VADANTIN有趣。
String
API的另一个怪癖。。。我可能会使用
[aeiou]
正则表达式:)