Печать строк в новой строке (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
Почему такое поведение ? Есть идеи ?
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