换行符不在Swift的txt文件中工作

时间:2018-02-16 13:46:56

标签: ios swift newline

我在Swift中解析一个简单的.txt文件,遇到了一个奇怪的问题。

文本文件如下:

This is a test \nThis should be on a new line

这是我的代码:

let path = Bundle.main.path(forResource: "test", ofType: "txt")
let example = try? String(contentsOfFile: path!, encoding: .utf8)
let example1 = "This is a test. \nThis should be on a new line."

example打印如下:

This is a test \nThis should be on a new line

虽然example1打印如下:

This is a test 
This should be on a new line

为什么从文本文件中读取时未检测到新行字符?

2 个答案:

答案 0 :(得分:3)

您在文件内容中看到的不是EOL字符,用肉眼看不到,而是两个字符:“\”和“n”。如果文件确实具有EOL,那么如果您声明并打印的字符串,它看起来与输出相同。

“\ n”是一个转义序列,允许您以编程方式在自定义字符串中添加行结尾。编译器将“\ n”组合转换为具有代码10的字符(EOL用于* nix平台)。这就是你的代码中发生的事情,这就是为什么在打印时,字符串有一个EOL。

答案 1 :(得分:0)

使用反斜杠转义读取文本文件。如果要用新行替换所有出现的\ n,请使用replacingOccurrences(of:with:)

let exampleWithNewlines = example.replacingOccurrences(of: "\\n", with: "\n")