Swift使用\ n \ r \ n字符

时间:2016-11-07 21:10:53

标签: swift

我有一个.txt文件,包括balboa \ n \ rblabla \ n等文本 当我解析文本并打印它时,我想显示新行​​而不是\ n,它仍然将\ n,\ r \ n字符打印到控制台。我很快,这里有什么问题?

1 个答案:

答案 0 :(得分: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)。