[英]Issue with splitting space separated string when string contains double quotes in swift
在下面的代碼中使用空格分隔字符串部分:
let string = "ABC DEF"
let arrayString = string.components(separatedBy: " ")
並獲得正確的輸出["ABC", "DEF"]
。
當字符串包含雙引號時,會發生問題。 添加的文本在textfield
,並使用的文字textfield
直接將其與空間分開。
文本字段中的字符串為Add sfc""
並使用相同的代碼將輸出作為["add", "sfc\\"\\""]
有人可以幫我為什么在字符串包含雙引號時添加\\
原因。 我該怎么做才能將其刪除?
這是在打印字符串數組時發生的情況。
print(["", ""])
版畫
["", ""]
該數組包含兩個都是空字符串的元素,但是打印了兩個引號字符""
。 這是因為如果按字面意義將字符串打印出來:
[, ]
它看起來不會像“不錯”。 不太清楚有兩個空字符串。
您可以這樣想:
字符串數組的打印就像在代碼中一樣
這就是為什么要加反斜杠的原因。 想象一下,如果這在您的代碼中,您將如何編寫表示字符串sfc""
的字符串文字? 您會寫"sfc\\"\\"""
對嗎?這就是打印出來的內容。
反斜杠實際上並不存在,只是為了清楚起見而轉義了字符串。
分別打印數組的每個項目,然后看它們消失了:
print(["", ""][0]) // prints nothing
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.