如何将字符串转换为字符数组?

时间:2019-08-13 09:20:37

标签: swift closures swift5

因此,我坚持这样做,因为大多数内部Swift程序不再起作用,并且仍在学习中。我已经尝试了很多东西,但仍然无法正常工作。

我尝试了内部功能。我尝试了自定义方法。我尝试将它们放入扩展中(与自定义方法相同,但我想练习扩展。)


extension Character {
    var isVowel: Bool {
        let vowels: [Character] = ["a", "e", "i", "o", "u"]
        return vowels.contains(self)
    }
}

extension String{
    
    func transform (_ function: (String) -> String) -> String{
        return function(self)
    }
    
    func toCharacter() -> [Character]{
        var working = self.components(separatedBy: "")
        var output: [Character] = []
        
        for i in 0...working.count{
            output.append(Character(working[i]))
        }
        
        return output
    }
}

func toString(from input: [Character]) -> String{
    var output = ""
    for i in input{
        output += String(i)
    }
    
    return output
}


func removeVowels(from given: String) -> String{

    var working = given.toCharacter()
    
    for i in 0...working.count{
        if working[i].isVowel{
            working.remove(at: i)
        }
    }
    
    return toString(from: working)
  
}

在String类型的扩展中,声明一个名为transform的函数。该函数应接受(String)-> String类型的另一个函数作为参数。对于此参数,我们省略外部标签。转换函数还应该返回一个字符串。

创建一个名为removeVowels的函数,该函数接受一个字符串并返回一个字符串。为参数from命名外部参数标签。在方法的主体中,返回一个新的String文字,其中从作为参数传递的值中删除了元音(英语)。

1 个答案:

答案 0 :(得分:0)

除了推荐SwifterSwift之外,因为他们已经实现了该扩展以及许多其他有用的扩展,这就是他们的implementation

slf4j-simple

要这样使用:

java -classpath ./lib/* YourProgram