我有一个.txt文件,包括balboa \ n \ rblabla \ n等文本 当我解析文本并打印它时,我想显示新行而不是\ n,它仍然将\ n,\ r \ n字符打印到控制台。我很快,这里有什么问题?
答案 0 :(得分: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
)。