- •3. Строки
- •3.1. Класс System.String
- •3.1.1. Форматирование и синтаксический анализ
- •If (Char.IsPunctuation(s1[I]) | Char.IsWhiteSpace(s1[I]))
- •3.1.2. Доступ к отдельным элементам строки
- •3.1.3. Смена регистра в строке
- •3.1.4. Объединение нескольких строк
- •3.1.5. Разделение строк на подстроки
- •3.2. Класс System.Text.StringBuilder
- •3.3. Структура System.Char
3.1.1. Форматирование и синтаксический анализ
Пример 3.1. Использование метода Format для вывода результатов вычислений.
class FormatString
{static void Main()
{// Ввод по запросу
System.Console.Write("Введите целое число: ");
string input = System.Console.ReadLine();
// Преобразование введенной строки в целое число
int j = System.Int32.Parse(input);
// Вывод отдельных строк в каждой итерации цикла
string s;
for (int i = 0; i < 10; i++)
{// Простейшее форматирование без выравнивания.
s = System.String.Format("{0} * {1} = {2}", i+1, j, (i+1)*j);
System.Console.WriteLine(s);
}
System.Console.ReadLine();
}
}
/* Вывод:
Введите целое число: 7
1 * 7 = 7
2 * 7 = 14
3 * 7 = 21
4 * 7 = 28
5 * 7 = 35
6 * 7 = 42
7 * 7 = 49
8 * 7 = 56
9 * 7 = 63
10 * 7 = 70
*/
В этом примере строку кода, отвечающую за преобразование введенной строки в целое число, можно заменить следующим фрагментом:
int j;
System.Int32.TryParse(input, out j);
Пример 3.2. Поиск пробелов или символов пунктуации в строке (с помощью методов IsWhiteSpace и IsPunctuation класса System.Char), чтобы определить, сколько слов содержится в строке. При этом используются свойства Length и Chars, а также метод Trim класса System.String.
using System;
public class FindString
{ public static void Main()
{ string s1 = "Эта строка состоит из одного предложения.";
int nWords = 0;
s1 = s1.Trim();
for (int i = 0; i < s1.Length; i++)
If (Char.IsPunctuation(s1[I]) | Char.IsWhiteSpace(s1[I]))
nWords++;
Console.WriteLine("Предложение:\n "{0}"\nсодержит {1} слов.",
s1, nWords);
Console.ReadLine();
}
}
// Вывод:
// Предложение
// "Эта строка состоит из одного предложения."
// содержит 6 слов.
3.1.2. Доступ к отдельным элементам строки
Пример 3.3. Использование методов Substring, IndexOf и Replace для доступа к отдельным элементам строки.
public class Example3
{ public static void Main()
{ string s3 = "Visual C# Express";
System.Console.WriteLine(s3.Substring(7, 2)); // Вывод: "C#"
System.Console.WriteLine(s3.Replace("C#", "Basic"));
// Вывод: "Visual Basic Express"
// Индексные значения отсчитываются от нуля
int index = s3.IndexOf("C"); // index = 7
System.Console.ReadLine();
}
}
Пример 3.4. Доступ к отдельным знакам в строке с использованием их индексов.
public class Example4
{ public static void Main()
{ string s5 = "Печать наоборот";
for (int i = 0; i < s5.Length; i++)
System.Console.Write(s5[s5.Length - i - 1]);
// Вывод: "торобоан ьтачеП"
System.Console.ReadLine();
}
}
3.1.3. Смена регистра в строке
Изменение регистра букв в строке с использованием методов ToUpper() и ToLower():
string s6 = "Бородинское сражение, 1812";
System.Console.WriteLine(s6.ToUpper());
// Вывод: "БОРОДИНСКОЕ СРАЖЕНИЕ, 1812"
System.Console.WriteLine(s6.ToLower());
// Вывод: "бородинское сражение, 1812"
