删除swift字符串的最后一个标点符号

Vit*_*k K 3 string comma nscharacterset swift

我正在尝试删除swift 2.0中字符串的最后一个标点符号

var str: String = "This is a string, but i need to remove this comma,      \n"
var trimmedstr: String = str.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
Run Code Online (Sandbox Code Playgroud)

首先,我在最后删除空格和换行符,然后我需要检查trimmedstr它的最后一个字符是否是标点符号.它可以是句号,逗号,破折号等,如果是,我需要删除它.

我怎么能做到这一点?

vac*_*ama 7

有多种方法可以做到这一点.您可以使用contains检查,如果最后一个字符是集合预期的字符,并使用dropLast()charactersString构建一个新的字符串没有最后一个字符:

let str = "This is a string, but i need to remove this comma, \n"

let trimmedstr = str.stringByTrimmingCharactersInSet(.whitespaceAndNewlineCharacterSet())

if let lastchar = trimmedstr.characters.last {
    if [",", ".", "-", "?"].contains(lastchar) {
        let newstr = String(trimmedstr.characters.dropLast())
        print(newstr)
    }
}
Run Code Online (Sandbox Code Playgroud)