You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中replacingOccurrences方法无效,如何去除字符串反斜杠与换行符?

解决Swift中Apple Pay拼接字符串的转义和换行问题

问题原因

  • 调试器显示的\"是Swift对字符串中双引号的转义显示格式,并非字符串实际包含反斜杠,所以调用replacingOccurrences(of: "\\", with: "")不会产生效果。
  • 末尾的\n是因为定义多行字符串时,末尾保留了换行和缩进空格。

解决方案

1. 优化多行字符串定义(可选)

定义时去掉多余的缩进和换行,从根源避免引入不必要的空白:

let tokenStr = """
{"paymentData":{"data":"\(tokenApplePay.paymentData.data)","signature":"\(tokenApplePay.paymentData.signature)","header":{"publicKeyHash":"\(tokenApplePay.paymentData.header.publicKeyHash)","ephemeralPublicKey":"\(tokenApplePay.paymentData.header.ephemeralPublicKey)","transactionId":"\(tokenApplePay.paymentData.header.transactionId)"},"version":"\(tokenApplePay.paymentData.version)"},"paymentMethod":{"displayName":"\(tokenApplePay.paymentMethod.displayName)","network":"\(tokenApplePay.paymentMethod.network)","type":"\(tokenApplePay.paymentMethod.type)"},"transactionIdentifier":"\(tokenApplePay.transactionIdentifier)"}
"""

2. 去除首尾空白字符

使用trimmingCharacters方法去掉字符串开头和结尾的所有空白类字符(包括换行、空格、制表符):

let cleanedTokenStr = tokenStr.trimmingCharacters(in: .whitespacesAndNewlines)

3. 处理实际存在的反斜杠(若有)

如果插值的内容中确实自带反斜杠,可在去除空白后再移除反斜杠:

let finalStr = cleanedTokenStr.replacingOccurrences(of: "\\", with: "")

验证说明

调试器打印时可能仍会显示\",但这只是系统的转义显示格式,实际字符串内容中没有反斜杠。可以通过将字符串写入本地文件或发送到后端接口,验证最终的实际内容。

内容的提问来源于stack exchange,提问作者Evg Enii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 05:00:34