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

时间:2016-01-01 00:47:28

标签: string swift comma nscharacterset

我正在尝试删除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())

首先我要删除末尾的空格和换行符,然后我需要检查trimmedstr的最后一个字符是否是标点符号。它可以是句号,逗号,短划线等,如果是,我需要删除它。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:7)

有多种方法可以做到这一点。您可以使用contains检查最后一个字符是否在预期字符集中,并使用dropLast() characters上的String构建一个新字符串,而不是最后一个角色:

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)
    }
}

答案 1 :(得分:1)

可以使用.trimmingCharacters(in:.whitespacesAndNewlines).trimmingCharacters(in: .punctuationCharacters)

例如,删除字符串两端的空格和标点符号 -

  

让str =“\ n这是一个字符串,但我需要删除这个逗号和空格,\ t \ n”

     

让trimmedStr = str.trimmingCharacters(in:   .whitespacesAndNewlines).trimmingCharacters(in:.punctuationCharacters)

结果 -

  

这是一个字符串,但我需要删除这个逗号和空格

相关问题