2016-11-07 9 views
0

У меня есть .txt-файл, содержащий текст как balboa \ n \ rblabla \ n , когда я разбираю текст и печатаю его, я хочу показать новую строку вместо \ n, он по-прежнему выводит на консоль символы \ n, \ r. Я новичок в быстроте, в чем проблема?Быстрая работа с символами n r t

ответ

1

Как сказал rmmaddy, не помещайте escape-последовательности в свой файл. Используйте символы, которые они фактически представляют.

И вот почему: escape-последовательности, такие как \n, фактически не существуют в файлах, где находятся новые строки. Эти escape-последовательности - это способ ввода символов (в исходный код), которые в противном случае невыразимы. Как только эта строка будет создана, эти escape-последовательности будут заменены их фактическими значениями.

Например, предположим у нас есть эта строка:

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): один между источником и компилятором. Все после этого теперь имеет дело с двоичным представлением новой строки (например, 0x0A в ASCII).

Смежные вопросы