簡體   English   中英

當字符串迅速包含雙引號時,拆分空格分隔的字符串的問題

[英]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

在使用printString(description: :)時(實際上)添加了反斜杠,以便能夠在文字字符串中顯示雙引號,但實際上不存在。

您可以在操場上證明這一點。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM