当字符串在swift中包含双引号时,拆分空格分隔字符串的问题

时间:2018-01-03 08:00:45

标签: ios swift string

在代码下面使用空格分隔字符串组件:

let string = "ABC DEF"
let arrayString = string.components(separatedBy: " ")

并获得正确的输出["ABC", "DEF"]

当字符串包含双引号时会出现问题。添加了textfield中的文字,并直接使用textfield的文字将其与空格分开。

textfield中的字符串为Add sfc"",并使用相同的代码将输出设为["add", "sfc\"\""]

有人可以帮助我在字符串包含双引号时添加\的原因。我该怎么做才能删除它?

2 个答案:

答案 0 :(得分:3)

打印字符串数组时会发生这种情况。

print(["", ""])

打印

["", ""]

数组包含两个都是空字符串的元素,而是打印两个引号字符 - "" - 。这是因为如果字符串按字面打印出来:

[, ]

看起来不那么“好”。不太清楚有两个空字符串。

你可以这样想:

  

打印字符串数组就好像它们在您的代码中一样

这就是反斜杠的原因。想象一下,如果这是在您的代码中,您将如何编写表示字符串sfc""的字符串文字?你会写"sfc\"\""",对吗?这就是印刷品。

反斜杠实际上并不存在,为了清晰起见,只是为了逃避字符串。

分别打印阵列的每个项目,你会发现它们已经消失了:

print(["", ""][0]) // prints nothing

答案 1 :(得分:2)

使用printString(description:时,(虚拟地)添加反斜杠,以便能够在文字字符串中显示双引号。实际上它们并不存在。

你可以在游乐场证明它。

enter image description here