Печать строк в новой строке (C#)



У меня есть странное требование, подобное:



string a = @"test content {1} test content {2}"



При печати этого мне нужно, чтобы вывод был



test content {1}

test content {2}


Итак, я попытался добавить rn к строке, но она печатает, как показано ниже:



string a = "test content {1}rn test content {2}rn"



Вывод:



test content {1}rn test content {2}rn



Почему такое поведение ? Есть идеи ?

556   6  

6 ответов:

Проблема заключается в начале @ перед вашим string.

Он говорит компилятору, чтобы избежать string следующего, так что на самом деле это так:

string s = "test content {1}\\r\\ntest content {2}"

Удалите @, и он будет работать.

Что касается исходной строки-включите linebreaks в строку, @ важно!

string a = @"test content {1} 

test content {2}";

И выход будет:

test content

test content
string a = "test content {1}" + Environment.NewLine + " test content {2}" + Environment.NewLine;

Окружающая среда.Новая строка экранирует одну строку.

Я думаю, что лучше всего использовать StringBuilder класс, потому что строки являются неизменяемыми

StringBuilder strb = new StringBuilder();
strb.AppendLine("test content {1}");
strb.Append("test content {2}");
string a = strb.ToString();

Тот факт, что вы используете разделители внутри строки, как

string a = "test content {1}\r\n test content {2}\r\n"

Говорит коду обрабатывать их как отображаемую строку-сюрприз! я бы рекомендовал вам разделить строку на отдельные группы, например

string a = "test content {1}" + Environment.NewLine + "test content {2}";

Можно использовать строку.Format () и окружающая среда.Новая строка:

String.Format("test content {{1}}{0}test content {{2}}", Environment.NewLine)

Double {} используется для экранирования этих символов. {0} вставить окружение.Строка новой строки.

Comments

    Ничего не найдено.