我正在尝试删除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
的最后一个字符是否是标点符号。它可以是句号,逗号,短划线等,如果是,我需要删除它。
我怎样才能做到这一点?
答案 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)
结果 -
这是一个字符串,但我需要删除这个逗号和空格