【问题标题】:How to remove only slashh from the string [closed]如何从字符串中仅删除斜杠[关闭]
【发布时间】:2020-11-26 06:54:07
【问题描述】:

我下面有一个字符串:

var jsonText = "{\"ImageSize\":\"2X\",\"data\":{\"code\":\"34\",\"key\":\"EeeGH\",\"busNo\":\"87\"}}

我只需要删除 \ 。

我试过下面的代码:

jsonText.replacingOccurrences(of: "\"", with: "")

o/p of above =  "{ImageSize:2X,data:{code:34,key:EeeGH,busNo:87}}"

我想要的是:

 "{"ImageSize":"2X","data":{"code":"34","key":"EeeGH","busNo":"87"}}"

它消除了对每个字符串引用的疑问。我只想删除\。我怎样才能做到这一点。任何帮助都会很棒。

【问题讨论】:

  • 将该字符串放入UILabel,您会发现它们实际上并不存在,这完全是为了逃避双引号,Swift 会将其视为字符串的结尾。现在,如果你从另一个来源(几乎没有这样编码)得到jsonText,你能告诉我们怎么做吗?你是如何得到这个值的?
  • @Larme。我将 NSDictionary 转换为字符串
  • 您的意思是使用JSONSerialization?把它放到UILabel,他们不应该在那里。或者你可能是 JSONifiying 的两倍,但这是另一个可能需要更多代码示例的问题。
  • @Larme if let theJSONData = try? JSONSerialization.data(withJSONObject: requestParams, options: []), let theJSONText = String(data: theJSONData, encoding: .utf8) {} 这是我正在做的。这里 requestParams 是 NSDictinoary

标签: swift string


【解决方案1】:

您的字符串中没有\\characters - 这只是转义双引号字符的符号。

如果您不想看到任何反斜杠,请使用原始字符串,如下所示:

let text1 = "{\"ImageSize\":\"2X\",\"data\":{\"code\":\"34\",\"key\":\"EeeGH\",\"busNo\":\"87\"}}"

let text2 = #"{"ImageSize":"2X","data":{"code":"34","key":"EeeGH","busNo":"87"}}"#

print(text1 == text2) // true

【讨论】:

  • ,来自 text1,我不想要那个单一的 \。但我需要双引号。因为我需要对该值进行编码,所以即使 " 会计算知道。所以缺少一些编码格式。
  • 我建议您将我展示的代码粘贴到游乐场 - 这将表明任何字符串中都没有 \ 字符,无论符号如何。另外,请参阅 docs.swift.org/swift-book/LanguageGuide/… 了解字符串文字的工作原理。
  • 对不起,我有点困惑......我需要采取哪一个。 tex1 是我现有代码中的内容
  • 使用任何你觉得更容易阅读的版本。如您所见,字符串是相同的。
  • 是的,但是当我们将此字符串转换为base64时,甚至\都会被计算为某种编码格式。但是我的后端团队想要发送没有那个\。然后编码并发送给服务器请求
猜你喜欢
  • 2012-09-12
  • 2015-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-06
相关资源
最近更新 更多