【问题标题】: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 的最后一个字符是否是标点符号。它可以是句号、逗号、破折号等,如果是我需要删除它。

我怎样才能做到这一点?

【问题讨论】:

    标签: string swift comma nscharacterset


    【解决方案1】:

    有多种方法可以做到这一点。您可以使用contains 检查最后一个字符是否在预期字符集中,并在Stringcharacters 上使用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)

    结果 -

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-25
      • 1970-01-01
      • 2018-10-30
      • 2011-12-15
      • 2021-03-18
      相关资源
      最近更新 更多