我有这样的字符串,其中\/
应该是字符串值的一部分。
["medium-video\/mp4",
"hd720-video\/mp4",
"medium-video\/webm",
"small-video\/3gpp"]
斯威夫特抱怨反斜杠。我尝试了\\/
,但在尝试使用它们时,字符串包含\\/
而不是\/
。不知道如何解决这个问题。
如果我使用双反斜杠打印数组,它们只会出现在字符串中而不是{I}期待的\/
。
["medium-video\\/mp4", "hd720-video\\/mp4", "medium-video\\/webm", "small-video\\/3gpp"]
答案 0 :(得分:3)
(假设“/”我期待。) 似乎不好的假设。就像历史一样......
只需将\/
替换为/
。
每种语言定义其有效的转义序列,在Swift(或标准-C)中\/
不是有效的转义序列,并且无法转义斜杠。
(在JSON中,\/
有效,但您无需转义斜杠。)
无论如何,在斯威夫特:
["medium-video/mp4",
"hd720-video/mp4",
"medium-video/webm",
"small-video/3gpp"]
假设我期待的\/
。您已经有了正确的答案。
["medium-video\\/mp4",
"hd720-video\\/mp4",
"medium-video\\/webm",
"small-video\\/3gpp"]
我猜错了一件事,就是你如何确认字符串数组的内容。
let arr = ["medium-video\\/mp4",
"hd720-video\\/mp4",
"medium-video\\/webm",
"small-video\\/3gpp"]
print(arr)
["medium-video\\/mp4", "hd720-video\\/mp4", "medium-video\\/webm", "small-video\\/3gpp"]
以上可能不是一个好方法,因为Swift使用调试符号来打印出Array的内容。要检查字符串数组中的实际内容,请尝试此操作。
arr.forEach {print($0)}
medium-video\/mp4 hd720-video\/mp4 medium-video\/webm small-video\/3gpp