美文网首页APP & program
iOS Swift字符串中删除周围的引号,括号,双引号

iOS Swift字符串中删除周围的引号,括号,双引号

作者: Lee坚武 | 来源:发表于2023-02-07 14:51 被阅读0次
本人亲测有效!更多交流可以家魏鑫:lixiaowu1129,公重好:iOS过审汇总,一起探讨iOS技术!

我有以双引号开头和结尾的Swift字符串。它们内部也包含双引号。内部双引号是一对(第一个示例),除非the是双引号之前的最后一个字符(第二个示例):

"-5 -5"" -Animated -Cartoon",我需要成为-5 -5" -Animated -Cartoon

"-POTF -Force -12 -12"",我需要成为-POTF -Force -12 -12"

我需要一种删除外部双引号并将“内部”双引号设置为仅一个双引号的方法。 在Kotlin中,我可以执行以下操作:使用removeSurrounding(请参阅以下定义),然后将2双引号替换为1

removeSurrounding

在且仅在以分隔符开头和结尾为的情况下,才从该字符串的开头和结尾删除给定的分隔符字符串。否则,返回此字符串不变。

newString = string.removeSurrounding("\"").replace("\"\"","\"")
解决方法:

您可以创建自己的扩展StringProtocol的字符串removeSurrounding方法,您只需要检查原始字符串是否以特定字符开头和结尾,并返回原始字符串并删除第一个和最后一个字符即可,否则返回不变:

extension StringProtocol {
    /// Removes the given delimiter string from both the start and the end of this string if and only if it starts with and ends with the delimiter. Otherwise returns this string unchanged.
    func removingSurrounding(_ character: Character) -> SubSequence {
        guard count > 1,first == character,last == character else {
            return self[...]
        }
        return dropFirst().dropLast()
    }
}

要创建同一方法的变异版本,您只需要将对RangeReplaceableCollectionn的扩展约束为将您的方法声明为变异,并使用变异方法removeFirst和removeLast而不是dropFirst和dropLast:

extension StringProtocol where Self: RangeReplaceableCollection {
    mutating func removeSurrounding(_ character: Character) {
        guard count > 1,last == character else {
            return
        }
        removeFirst()
        removeLast()
    }
}
举个🌰:
let string1 = #""-5 -5"" -Animated -Cartoon""#
let string2 = #""-POTF -Force -12 -12"""#
let newstring1 = string1.removingSurrounding("\"").replacingOccurrences(of: "\"\"",with: "\"")  // "-5 -5" -Animated -Cartoon"
let newstring2 = string2.removingSurrounding("\"").replacingOccurrences(of: "\"\"",with: "\"") // "-POTF -Force -12 -12""
效果图如下:

本文由mdnice多平台发布

相关文章

  • Python3:数据类型与基本运算

    标准数据类型 Python有5种标准数据类型 数字 字符串:单引号或双引号中 列表:方括号中 元组:圆括号中 字典...

  • Swift 3 学习 - 03 字符串和字符

    1 .字符串字面量 String 在Swift中字符串字面量是由双引号" " 包裹着的 像我们在 Swift 3 ...

  • “\”反斜杠的作用

    显示结果为 双引号字符串中能够添加双引号,单引号字符串中能够添加单引号。 *****在字符串中有这些作用*****...

  • JS (应用1)

    字符串中的特殊字符: 在js中,双引号字符串中的双引号内容和单引号字符串中的单引号内容都必须进行转移,形式如下: ...

  • JavaScript 字符串(上)

    JavaScript 字符串(上) 三种引号 字符串可以包含在单引号、双引号或反引号中 单引号 与 双引号 基本相...

  • 第3章:字符串和字符

      字符串是由双引号括起来字符序列,在swift中字符串是String类型,字符串是由Character组成,并且...

  • python字符串中的引号

    字符串的单引号,双引号以及三引号其根本目的是为了方便程序员定义包含单引号或者双引号的字符串。 当字符串中包含单引号...

  • Python 基础知识全篇-字符串(Strings)

    单引号和双引号 字符串可以包含在单引号或双引号中。 my_string = "This is a double-q...

  • python字符串类型

    1、类型表示单引号、双引号、三引号单引号字符串:‘单引号表示,可以使用“双引号”作为字符串的一部分’双引号字符串:...

  • Python学习笔记6——字符串

    1.处理字符串 1)单引号 简单输入:以单引号开始和结束 2)双引号 字符串中需要使用单引号:以双引号开...

网友评论

    本文标题:iOS Swift字符串中删除周围的引号,括号,双引号

    本文链接:https://www.haomeiwen.com/subject/hexfkdtx.html