Перевод строки в консольном приложении (C#)
Насколько я знаю, для перевода строки в Windows используется сочетание управляющих символов \r\n. Но при разработке консольного приложения для этой цели можно обойтись только символом \n. Так, если в программе
\r\n заменить на \n, то вывод от этого не изменится. При этом, например, в элементе управления TextBox, значение свойства Multiline которого равно True, приложения Windows Forms написать \n для перевода строки недостаточно, нужно обязательно писать \r\n. Например, если написать такой код:
, то при нажатии на кнопку buttonOK в поле textBoxOutput никакого переноса не будет. Почему такая разница?
\r\n — стандарт переноса строки в Windows, он со времен MS-DOS не менялся, имеет аббревиатуру CRLF (Carriage Return Line Feed).
\n — стандарт переноса строки в UNIX (Linux, BSD, и т.д.), имеет аббревиатуру LF.
Почему консоль реагирует одинаково на оба варианта — вопрос к разработчикам консоли в Microsoft, но по стандарту гарантированно в Windows должен работать только стандарт CRLF.
Как переносить строки в c
Лучший отвечающий
Вопрос
Добрый день. Сдаюсь. Сам не могу справиться.
Есть база там поле nvarchar в нём текст забит мной вручную. В этом тексте для перевода текста на новую строку я поставил \n вот так:
"Проверка привет \n ещё одна"
далее средствами EF я извлекаю этот текст из базы и кладу его в переменную string _basaData.
А далее из этой переменной в Run.Text у Paragraph и никакого переноса нет.
Я заключал \n в кавычки, ставил \\n В базе сам текст заключал в кавычки и убирал их
Пытался применить String.Format(_basaData)
Пытался сделать _basaData.ToString();
В общем мои знания закончились и обращаюсь за помощью к профессионалам.
Суть такая: Делаю шаблоны текста. Т.к. шаблон то разбиение на абзацы и строки могу сделать уже в самой базе. В коде сильно не обрабатывать.
Как переносить строки в c
Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.6.13.42356
StringBuilder builder = new StringBuilder();
builder.AppendLine(«Hallo, the!»).Append(«My name is Alex»):
string str = builder.ToString();
public static class Chars
public static const char Newline = ‘\n’;
public static const char Tab = ‘\t’;
public static const char CarriageReturn = ‘\r’;
public static const char Beep = ‘\b’;
>
Строки. Средства работы со строками
Строка в C# — это массив знаков, объявленный с помощью ключевого слова string. Строковый литерал объявляется с помощью кавычек, как показано в следующем примере.
string s = «Hello, World!»;
Переприсваивание
Строки можно целиком переприсваивать:
string s1 = «Hello»;
string s2 = s1; //переприсваиваем
Объединение строк
Можно объединять строки с помощью оператора +, как показано в следующем примере:
string s1 = «orange»;
Console.WriteLine(s1); // напечатается «orangered»
Escape-знаки
Строки могут содержать escape-знаки, такие как «\n» (новая строка) и «\t» (табуляция). Пример:
string hello = «Hello\nWorld!»;
string s = «чтобы вставить \»кавычки\» в строку используем обратный слэш»;
Если требуется добавить в строку обратную косую черту, перед ней нужно поставить еще одну обратную косую черту. Следующая строка:
string filePath = «\\\\My Documents\\»;
Точные строки: символ @
Символ @ служит для того, чтобы конструктор строк пропускал escape-знаки и переносы строки. Следующие две строки являются идентичными:
string p1 = «\\\\My Documents\\My Files\\»;
string p2 = @»\\My Documents\My Files\»;
Чтобы поставить в точной строке знак двойных кавычек, нужно использовать по два таких знака, как показано в следующем примере:
string s = @»You say «»goodbye»» and I say «»hello»»»;
Доступ к отдельным знакам
Квадратные скобки [] служат для доступа к отдельным знакам в объекте string, но при этом возможен доступ только для чтения:
string str = «test»;
char x = str[2]; // x = ‘s’;
string s5 = «Printing backwards»;
for (int i = 0; i < s5.Length; i++)
Console.Write(s5[s5.Length — i — 1]);
// напечатается «sdrawkcab gnitnirP»
Извлечение подстрок
Для извлечения подстроки из строки используется метод Substring.
string s3 = «Visual C# Express»;
string s4 = s3.Substring(7, 2);
Замена по образцу
Для замены подстроки в строке по образцу используется метод Replace.
string s3 = «Visual C# Express»;
string s5 = s3.Replace(«C#», «Basic»);
// напечатается «Visual Basic Express»
Смена регистра
Чтобы изменить регистр букв в строке (сделать их заглавными или строчными) следует использовать ToUpper() или ToLower(), как показано в следующем примере:
string s6 = «АлтГТУ»;
Сравнения
Самый простой способ сравнения двух строк — использовать операторы == и !=, осуществляющие сравнение с учетом регистра:
string color1 = «red»;
string color2 = «green»;
string color3 = «red»;
if (color1 == color3)
if (color1 != color2)
Console.WriteLine(«Строки не равны»);
Не допускается использование >,<,>=,<= для сравнения строк. Для строковых объектов существует метод CompareTo(), возвращающий целочисленное значение, зависящее от того, что одна строка может быть меньше (<), равна (==) или больше другой (>). При сравнении строк используется значение Юникода, при этом значение строчных букв меньше, чем значение заглавных. Дополнительные сведения о правилах сравнения строк см. в разделах CompareTo().
string string1 = «ИИТ»;
string string2 = «Иит»;
int result = string1.CompareTo(string2);
Console.WriteLine(» <0>больше чем <1>«, string1, string2);
else if (result == 0)
Console.WriteLine(» <0>равно <1>«, string1, string2);
else if (result < 0)
Console.WriteLine(» <0>меньше чем <1>«, string1, string2);
// Напечатается ИИТ больше чем Иит
Удаление фрагментов и вставка строк в строки
Может быть выполнена с помощью методов Remove и Insert:
string x = «ZX Spectrum»;
Пустые строки
Пустая строка — это экземпляр объекта String, содержащий 0 знаков. Пустые строки часто используются в различных сценариях программирования, представляя пустое текстовое поле. Для пустых строк можно вызывать методы, потому что такие строки являются допустимыми объектами String. Пустые строки инициализируются следующим образом:
Массивы из строк
Могут быть инициализированы начальными значениями:
//напечатается Алтайский край
Разбиение строк
Следующий пример кода демонстрирует возможность разбора строки при помощи метода String.Split. Работа метода заключается в возврате массива строк, в котором каждый элемент представляет слово. В качестве ввода Split принимает массив символов, определяющих какие символы должны использоваться в качестве разделителей. В этом примере используются пробелы, запятые, точки, двоеточия и табуляция. Массив, содержащий эти разделители, передается в Split, и каждое слово в предложении выводится отдельно при помощи результирующего массива строк.
Пример: разбить предложение на слова
string text = «Шла Саша по шоссе и сосала сушку»;
Console.WriteLine(«Исходный текст: ‘<0>‘», text);
string[] words = text.Split(razdelitel);
Console.WriteLine(» <0>слов в тексте:», words.Length);
foreach (string s in words)
Рисунок 1 — Пример выполнения
В качестве разделителя может выступать массив символов.
string text = «one\ttwo three:four,five six seven»;
Console.WriteLine(«Original text: ‘<0>‘», text);
string[] words = text.Split(delimiterChars);
Console.WriteLine(» <0>words in text:», words.Length);
foreach (string s in words)
Рисунок 2 — Пример выполнения
Пример: Ввести текстовую строку. Напечатать слова, в которых первая буква встречается еще хотя бы раз.
foreach (string word in words)
bool flag = false;
while (i < word.Length & !flag)
if (word[i] == c) flag = true;
if (flag) Console.WriteLine(word);
Рисунок 3 — Пример выполнения
Преобразование строк в другие типы
С помощью объекта Convert:
С помощью метода Parse:
Задачи на обработку строк . Условие вида «дана строка» означает, что пользователем вводится строка с клавиатуры. Осуществить ввод необходимых данных, выполнить реализацию алгоритма, обеспечить вывод полученных результатов. Не допускается использование операторов, прерывающих ход программы (break, goto). Ввод строк, обработка и вывод результатов реализуется отдельными методами .
1 Даны строки S и S0. Проверить, содержится ли строка S0 в строке S. Не использовать стандартные средства для поиска подстрок.
2 Даны строки S и S0. Найти количество вхождений строки S0 в строку S. Не использовать стандартные средства для поиска подстрок.
3 Дана строка S. Разделить строку на отдельные слова не используя стандартные средства для разбиения строк.
4 Дана строка S. Из строки требуется удалить текст, заключенный в фигурные скобки. В строке может быть несколько фрагментов, заключённых в фигурные скобки. Возможно использование вложенных фигурных скобок и, следовательно необходимо, чтобы программа это учитывала.
5 Дана строка S. Найти количество различных букв в ней. Программа должна работать без учёта регистра букв.
6 Дана строка S. Найти количество различных слов в ней. Программа должна работать без учёта регистра букв.
7 Дана строка S. Определить есть ли в строке удвоенные буквы (пара соседствующих одинаковых букв), напечатать слова, содержащие их.
8 Дана строка S (предложение). Найти самое длинное слово в строке не используя стандартные средства для разбиения строк.
9 Дана строка S (предложение). Составить программу, определяющую является ли текст перевёртышем без учёта пробелов.
10 Дана строка. Вывести все слова, у которых первая и последняя буквы одинаковые не используя стандартные средства для разбиения строк.