Начнём по порядку. Что значит "работа со строками"? Это любое взаимодействие с ними:
Конкатенация (сложение строк, например: "znanija/" + "task/31137639" = "znanija/task/31137639")Сравнение (как по символам (которые выше по значению, те строки и выше), так и по длине)Поиск (например, в строке "znanija/task/31137639" нам нужно найти все наклонные чёрточки "/")Вставка / Удаление / Копирование / Замена / Замена больших букв на маленькие и наоборотЧто же такое форматирование строки? Из определения понятно, что мы уже работаем с конечной строкой. Она намного вкуснее и работать с ней одно удовольствие, особенно для программ общего назначения, где используются вводы номеров, имён, кредитных карточек или любых других текстовых объектов. Например, у нас есть номер: +79123456789. Лично я при написании одного из своего первого проекта пытался сам написать метод правильного разделения номеров по шаблону: код страны, оператор, идентификатор. Всё это довольно болезненно, поскольку нужно резать строку, выбирать оттуда первые N чисел после I индекса.. В общем - морока. Вместо этого можно делать всё очень просто:
long number = 79123456789;tbLogin.Text = $"{number:+#-(###)-(###)-(##)-(##)}";// output: +7-(912)-(345)-(67)-(89)Помимо этого, если Вы знакомы с тернарным оператором (сокращенная запись if else), который выглядит как (if else):
условие ? выполнить_если_true : выполнить_если_false;или так (if else if):
условие ? выполнить_если_true : условие? выполнить_если_true : выполнить_если_false;То можете использовать его сокращённую версию и в строках, проверяя значение на null:
string defaultName = null;tbPassword.Text = $"{defaultName??"task31137639"}"; // output: task31137639В общем-то всё, если что-то непонятно - обращайтесь в комментарии.
writeln('¶¶¶¶¶¶¶¶¶¶1');
writeln('¶¶¶¶¶¶¶¶¶¶¶¶1');
writeln('¶¶_¶¶¶¶¶¶¶¶¶¶¶¶¶');
writeln('¶¶¶_¶¶¶¶¶¶¶¶¶¶¶¶');
writeln('¶¶__¶¶¶__¶¶¶¶_¶¶¶¶¶¶¶¶');
writeln('¶¶_¶¶¶¶_¶¶¶¶¶¶¶¶¶_¶¶¶¶¶1');
writeln('¶_¶¶¶¶_¶¶¶¶¶¶¶¶¶¶¶_¶¶¶¶¶1');
writeln('¶_¶¶¶¶_¶¶¶¶¶¶¶¶¶¶¶_¶¶¶¶¶1');
writeln('¶¶¶¶¶_¶¶¶¶¶¶¶¶¶¶¶¶_¶¶¶¶¶1');
writeln('¶¶¶¶¶_¶¶¶¶¶¶¶__¶¶¶¶¶_¶¶¶¶¶');
writeln('¶¶¶¶¶_¶¶¶¶¶¶¶¶¶_¶¶¶¶¶1');
writeln('¶¶¶¶¶¶¶_¶¶¶¶¶¶¶¶¶¶¶¶¶');
writeln('_¶¶1¶¶¶¶_¶¶¶¶¶¶¶¶¶¶1');
writeln('_¶¶¶¶¶¶¶¶_¶¶¶¶¶¶¶¶1');
writeln('__¶¶_¶¶¶¶¶¶_¶¶¶¶');
writeln('__¶¶¶__¶¶¶¶¶¶_¶¶¶');
writeln('__¶¶¶___¶__¶¶¶¶¶_¶¶¶¶');
writeln('___¶¶¶¶¶_¶_¶¶¶¶¶¶_¶¶¶¶');
writeln('___¶¶_¶¶¶¶¶1¶¶¶¶¶¶¶¶¶¶1');
writeln('__¶__¶¶¶¶¶¶¶¶1¶¶¶¶¶¶¶¶¶¶¶1');
writeln('_¶¶_¶¶¶¶_¶¶¶¶¶¶¶1¶¶¶¶¶_¶¶¶¶¶');
writeln('_¶¶_0__0_¶¶¶¶¶¶¶¶¶¶¶¶1__¶¶¶¶__¶¶¶1');
writeln('_¶¶_¶¶¶¶_¶¶¶¶¶¶¶¶¶¶¶¶¶¶1__¶¶¶¶_¶¶¶¶1');
writeln('_¶¶¶¶¶¶¶¶¶¶_¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶_¶¶¶¶_¶¶¶1');
writeln('__¶¶¶¶¶¶¶¶_¶¶¶¶¶¶¶¶¶¶_¶¶¶¶¶_¶¶¶¶¶_¶¶¶1');
writeln('___¶¶¶¶¶¶_¶¶¶¶¶¶¶¶¶¶¶_¶¶¶¶¶¶__¶¶¶¶_¶¶¶¶1');
writeln('¶¶¶_¶¶¶¶¶¶¶¶¶¶_¶¶¶¶¶__¶¶¶¶¶_¶¶¶1');
writeln('¶¶¶¶¶¶___¶¶¶¶¶¶_¶¶¶¶¶¶__¶¶¶¶_¶¶¶1');
writeln('¶_¶¶¶¶¶¶¶¶¶_¶¶¶¶¶_¶¶¶¶¶¶__¶¶¶¶_¶¶¶1');
writeln('___1¶¶¶_¶¶¶¶¶¶¶¶¶¶¶¶¶_¶¶¶¶¶¶¶__¶¶¶¶_¶¶¶1');
writeln('__1¶¶¶¶¶_¶¶¶¶¶¶¶¶¶¶¶¶_¶¶¶¶¶¶¶__¶¶¶¶_¶¶¶1');
writeln('__1¶¶¶¶¶¶¶¶¶¶¶¶_¶¶¶¶¶¶¶¶__¶¶¶¶_¶¶¶1');
writeln('__1¶¶¶¶¶_¶¶¶¶_¶¶¶¶__¶¶¶¶¶¶¶¶¶¶_¶¶¶_¶¶¶1');
writeln('___1¶¶¶_¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶_¶¶_¶¶_¶¶¶¶1');
writeln('¶_¶¶¶¶¶_¶¶¶¶¶¶¶_¶¶¶¶¶¶¶_¶_¶¶_¶¶¶1');
writeln('¶¶¶¶¶_¶¶¶¶¶¶¶¶_¶¶¶¶¶¶_¶_¶¶_¶¶1');
writeln('¶¶¶¶¶_¶¶¶¶¶¶¶¶¶¶¶¶_¶¶_¶¶¶¶1');
writeln('¶¶¶¶_¶¶¶¶¶¶¶¶¶¶¶¶_¶¶1');
writeln('___¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶___¶¶¶___¶¶¶¶¶');
writeln('__¶¶¶¶¶¶¶¶¶¶¶¶¶¶_¶¶¶¶¶¶¶¶');
writeln('_¶¶¶¶¶¶¶¶¶¶¶¶¶');
writeln('_¶___¶¶¶¶_¶¶¶¶');
writeln('¶___¶¶¶¶_¶¶¶¶¶¶¶');
writeln('¶¶¶¶_¶¶¶¶¶1¶¶');
writeln('¶¶¶¶_¶¶¶¶¶¶¶¶¶_¶¶');
writeln('¶¶¶¶_¶¶¶¶¶¶¶¶¶¶_¶¶');
writeln('¶¶¶¶¶_¶¶¶¶¶¶¶¶¶_¶¶');
writeln('¶¶¶¶¶_¶¶¶¶¶¶¶¶¶¶_¶¶');
writeln('¶¶¶¶_¶¶¶¶¶¶¶¶¶_¶¶');
writeln('¶¶¶¶_¶¶¶¶¶¶¶¶¶_¶');
writeln('¶¶¶¶¶¶¶¶¶¶_¶');
writeln('¶¶¶1¶¶¶¶¶');
writeln('¶¶1¶¶');
writeln('¶¶');
writeln('¶¶');
end.