4

我正在尝试删除 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是否是标点符号。它可以是句号、逗号、破折号等,如果是我需要删除它。

我怎样才能做到这一点?

4

2 回答 2

7

有多种方法可以做到这一点。您可以使用contains检查最后一个字符是否在预期字符集中,并使用dropLast()on构造一个没有最后一个字符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)
    }
}
于 2016-01-01T01:57:40.967 回答
2

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

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

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

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

结果——

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

于 2018-03-08T18:59:30.293 回答