删除快速字符串的最后一个标点符号
Posted
技术标签:
【中文标题】删除快速字符串的最后一个标点符号【英文标题】:Remove last punctuation of a swift string 【发布时间】:2016-01-01 00:47:28 【问题描述】:我正在尝试在 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
的最后一个字符是否是标点符号。它可以是句号、逗号、破折号等,如果是我需要删除它。
我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:有多种方法可以做到这一点。您可以使用contains
检查最后一个字符是否在预期字符集中,并在String
的characters
上使用dropLast()
构造一个没有最后一个字符的新字符串:
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)
【讨论】:
非常感谢,这解决了我的问题! 不客气@VitalikK。请单击我的答案左侧的复选标记将其变为绿色。 知道了,我刚接触堆栈溢出 您是否知道如何初始化此字典:var songs = [String: [song]]()
其中歌曲是一个结构
即初始化。 Song 应该大写为结构名称。使用您的结构和要放入字典的数据发布一个新问题。【参考方案2】:
可以使用.trimmingCharacters(in:.whitespacesAndNewlines)
和.trimmingCharacters(in: .punctuationCharacters)
例如,去除字符串两端的空格和标点符号-
let str = "\n 这是一个字符串,但我需要删除这个逗号和空格,\t\n"
让 trimmedStr = str.trimmingCharacters(in: .whitespacesAndNewlines).trimmingCharacters(in: .punctuationCharacters)
结果 -
这是一个字符串,但我需要删除这个逗号和空格
【讨论】:
以上是关于删除快速字符串的最后一个标点符号的主要内容,如果未能解决你的问题,请参考以下文章
MPMoviePlayerViewController,删除快速符号/添加背景图像?