當我解析文本並打印它時,我有一個包含文本的.txt文件,例如balboa \ n \ rblabla \ n ,我想顯示新行而不是\ n,它仍然將\ n,\ r字符打印到控制檯。我是新來的,這裏有什麼問題?Swift使用 n r t字符
0
A
回答
1
正如rmmaddy所說,不要把轉義序列放在你的文件中。使用他們實際代表的符號。
這就是爲什麼:轉義序列如\n
實際上並不存在於新行的文件中。這些轉義序列是您輸入(源代碼中)無法表達的字符的一種方式。只要該字符串被創建,那些轉義序列就會替代它們的實際含義。
例如,假設我們有這個字符串:
let s = "a\nb"
它看起來像4個字符(a
,\
,n
,b
),對不對?那麼看看這個:
print(s.characters.count) // 3
的String
實際上由3個字符(a
,換行符,和b
)。 \n
轉義序列僅供您與編譯器進行通信「我想要一個新的行字符」,而不是通過實際輸入一個新行來表示它。只要編譯器看到它,它就用新的行代碼代替它。
假設你有一個簡單的程序,它採用String
文字(直接在源代碼中定義的字符串)並將其寫入文件。想象通過發生這種情況作爲管道的過程中,大致像這樣:
String literal ---> compiler ---> app binary ---> running app instance in RAM ---> file.txt
所有這些「管道」中(--->
),其中只有一個使用(\n
):源和編譯器之間的一個。之後的所有內容現在都處理換行符的二進制表示形式(例如ASCII中的0x0A
)。
相關問題
- 1. 發送「\ r \ n」字符使用GPIB
- 2. 使用javascript分割所有字符,除'\ t','\ b','\ n'
- 3. 從字符串中跳出HTML以及\ r \ t和\ n
- 4. 的NodeJS:轉換表的字符串(含\ n \ r和\ T)以JSON
- 5. scrapy中的Strip \ n \ t \ r
- 6. 在C#中運行時插入特殊字符(\ t,\ n,\ r等)
- 7. 擺脫\ r \ n字符串
- 8. T(n)= T(n - sqrt(n))
- 9. T(N)= T(N-1)+ 10/N
- 10. 解決T(N)=√2* T(N/2)+登錄N使用主定理
- 11. \ r \ n \ r \ n字符串進入純文本
- 12. 從字符串中刪除'\ t'和'\ n'
- 13. 從\ n和\ t分割字符串
- 14. 檢測空格字符,\ t,\ n等
- 15. 用「\ n」代替「\ r \ n」
- 16. 從R語言的字符「\ n 0.28 \ n \ n」中獲得編號
- 17. + \ r | [\ t \ s] + \ n | [\ t \ s] + \ r | [\ r \ n] +無法捕捉純文本文件中的空行
- 18. 復發T(n)= T(n - log(n))+ 1
- 19. Groovy腳本用「」代替\ r \ n,\ n和\ t
- 20. 使用'\ r \ n \ r \ n'或'\ n \ n'結束HTTP請求
- 21. 如何從XmlReader中刪除「\ r \ t \ t」轉義字符
- 22. Php換行符未使用\ n \ r
- 23. T-SQL - 如何搜索字符串中的第n個字符
- 24. 求解:T(n)= T(n/2)+ n/2 + 1
- 25. T(n)= 4 T(n/3)+ lg n
- 26. C#從\ n轉換SQL字符串用\ r \ n
- 27. 復發關係:T(n)= T(n/2)+ n
- 28. 如何解決:T(N)= T(N - 1)+ N
- 29. 復發:T(n)= T(n/2)+ log N
- 30. QT QTcpServer telnet以字符\ r \ n