Чтение онлайн

на главную

Жанры

Язык программирования C#9 и платформа .NET5
Шрифт:

using System;

using System.Text;

BasicStringFunctionality;

static void BasicStringFunctionality

{

Console.WriteLine("=> Basic String functionality:");

string firstName = "Freddy";

// Вывод значения firstName.

Console.WriteLine("Value of firstName: {0}", firstName);

// Вывод длины firstname.

Console.WriteLine("firstName has {0} characters.", firstName.Length);

//
Вывод firstName в верхнем регистре.

Console.WriteLine("firstName in uppercase: {0}", firstName.ToUpper);

// Вывод firstName в нижнем регистре.

Console.WriteLine("firstName in lowercase: {0}", firstName.ToLower);

// Содержит ли firstName букву у?

Console.WriteLine("firstName contains the letter y?: {0}",

firstName.Contains("y"));

// Вывод firstName после замены.

Console.WriteLine("New first name: {0}", firstName.Replace("dy", ""));

Console.WriteLine;

}

Здесь объяснять особо нечего: метод просто вызывает разнообразные члены, такие как

ToUpper
и
Contains
, на локальной переменной
string
, чтобы получить разные форматы и трансформации. Ниже приведен вывод:

***** Fun with Strings *****

=> Basic String functionality:

Value of firstName: Freddy

firstName has 6 characters.

firstName in uppercase: FREDDY

firstName in lowercase: freddy

firstName contains the letter y?: True

firstName after replace: Fred

Несмотря на то что вывод не выглядит особо неожиданным, вывод, полученный в результате вызова метода

Replace
, может вводить в заблуждение. В действительности переменная
firstName
вообще не изменяется; взамен получается новая переменная
string
в модифицированном формате. Чуть позже мы еще вернемся к обсуждению неизменяемой природы строк.

Выполнение конкатенации строк

Переменные

string
могут соединяться вместе для построения строк большего размера с помощью операции
+
языка С#. Как вам должно быть известно, такой прием формально называется конкатенацией строк. Рассмотрим следующую вспомогательную функцию:

static void StringConcatenation

{

Console.WriteLine("=> String concatenation:");

string s1 = "Programming the ";

string s2 = "PsychoDrill (PTP)";

string s3 = s1 + s2;

Console.WriteLine(s3);

Console.WriteLine;

}

Интересно отметить, что при обработке символа

+
компилятор C# выпускает вызов статического метода
String.Concat
.
В результате конкатенацию строк можно также выполнять, вызывая метод
String.Concat
напрямую (хотя фактически это не дает никаких преимуществ, а лишь увеличивает объем набираемого кода):

static void StringConcatenation

{

Console.WriteLine("=> String concatenation:");

string s1 = "Programming the ";

string s2 = "PsychoDrill (PTP)";

string s3 = String.Concat(s1, s2);

Console.WriteLine(s3);

Console.WriteLine;

}

Использование управляющих последовательностей

Подобно другим языкам, основанным на С, строковые литералы C# могут содержать разнообразные управляющие последовательности, которые позволяют уточнять то, как символьные данные должны быть представлены в потоке вывода. Каждая управляющая последовательность начинается с символа обратной косой черты, за которым следует специфический знак. В табл. 3.6 перечислены наиболее распространенные управляющие последовательности.

Например, чтобы вывести строку, которая содержит символ табуляции после каждого слова, можно задействовать управляющую последовательность

\t
. Или предположим, что нужно создать один строковый литерал с символами кавычек внутри, второй — с определением пути к каталогу и третий — со вставкой трех пустых строк после вывода символьных данных. Для этого можно применять управляющие последовательности
\"
,
\\
и
\n
. Кроме того, ниже приведен еще один пример, в котором для привлечения внимания каждый строковый литерал сопровождается звуковым сигналом:

static void EscapeChars

{

Console.WriteLine("=> Escape characters:\a");

string strWithTabs = "Model\tColor\tSpeed\tPet Name\a ";

Console.WriteLine(strWithTabs);

Console.WriteLine("Everyone loves \"Hello World\"\a ");

Console.WriteLine("C:\\MyApp\\bin\\Debug\a ");

// Добавить четыре пустых строки и снова выдать звуковой сигнал.

Console.WriteLine("All finished.\n\n\n\a ");

Console.WriteLine;

}

Выполнение интерполяции строк

Синтаксис с фигурными скобками, продемонстрированный ранее в главе

({0}, {1}
и т.д.), существовал в рамках платформы .NET еще со времен версии 1.0. Начиная с выхода версии C# 6, при построении строковых литералов, содержащих заполнители для переменных, программисты на C# могут использовать альтернативный синтаксис. Формально он называется интерполяцией строк. Несмотря на то что выходные данные операции идентичны выходным данным, получаемым с помощью традиционного синтаксиса форматирования строк, новый подход позволяет напрямую внедрять сами переменные, а не помещать их в список с разделителями-запятыми.

Поделиться:
Популярные книги

На границе тучи ходят хмуро...

Кулаков Алексей Иванович
1. Александр Агренев
Фантастика:
альтернативная история
9.28
рейтинг книги
На границе тучи ходят хмуро...

Энфис. Книга 1

Кронос Александр
1. Эрра
Фантастика:
боевая фантастика
рпг
5.70
рейтинг книги
Энфис. Книга 1

Я – Орк. Том 4

Лисицин Евгений
4. Я — Орк
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я – Орк. Том 4

Совок-8

Агарев Вадим
8. Совок
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Совок-8

Я снова не князь! Книга XVII

Дрейк Сириус
17. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я снова не князь! Книга XVII

Жена со скидкой, или Случайный брак

Ардова Алиса
Любовные романы:
любовно-фантастические романы
8.15
рейтинг книги
Жена со скидкой, или Случайный брак

Адепт: Обучение. Каникулы [СИ]

Бубела Олег Николаевич
6. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.15
рейтинг книги
Адепт: Обучение. Каникулы [СИ]

Огненный князь 6

Машуков Тимур
6. Багряный восход
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Огненный князь 6

Как я строил магическую империю 2

Зубов Константин
2. Как я строил магическую империю
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Как я строил магическую империю 2

Цеховик. Книга 1. Отрицание

Ромов Дмитрий
1. Цеховик
Фантастика:
попаданцы
альтернативная история
5.75
рейтинг книги
Цеховик. Книга 1. Отрицание

Безымянный раб

Зыков Виталий Валерьевич
1. Дорога домой
Фантастика:
фэнтези
9.31
рейтинг книги
Безымянный раб

Матабар. II

Клеванский Кирилл Сергеевич
2. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар. II

Виконт. Книга 2. Обретение силы

Юллем Евгений
2. Псевдоним `Испанец`
Фантастика:
боевая фантастика
попаданцы
рпг
7.10
рейтинг книги
Виконт. Книга 2. Обретение силы

Первый пользователь. Книга 3

Сластин Артем
3. Первый пользователь
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Первый пользователь. Книга 3