2016-11-07 58 views
0

當我解析文本並打印它時,我有一個包含文本的.txt文件,例如balboa \ n \ rblabla \ n ,我想顯示新行​​而不是\ n,它仍然將\ n,\ r字符打印到控制檯。我是新來的,這裏有什麼問題?Swift使用 n r t字符

回答

1

正如rmmaddy所說,不要把轉義序列放在你的文件中。使用他們實際代表的符號。

這就是爲什麼:轉義序列如\n實際上並不存在於新行的文件中。這些轉義序列是您輸入(源代碼中)無法表達的字符的一種方式。只要該字符串被創建,那些轉義序列就會替代它們的實際含義。

例如,假設我們有這個字符串:

let s = "a\nb" 

它看起來像4個字符(a\nb),對不對?那麼看看這個:

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)。