Работа со строками
Создадим строку:
string myString = "Hello";
Указан тип данных string, имя переменной и значение. Выполним стандартные операции: вывод в консоль, добавление текста:
myString += " world!";
Строка — массив символов. Ранее в некоторых языках программирования (например, в некоторых ОС) типа данных string не существовало, был только char. string — гибридный тип, массив символов, объединённый в строку. Доступ к любому элементу (символу):
Console.WriteLine(myString[1]); // Выведет 'e'
Индексация с нуля. Используем свойства массивов, например, Length:
Console.WriteLine(myString.Length); // Выведет длину строки
Дополнительные функции для строк
Функции, аналогичные операциям с массивами (добавление, обрезка):
string word = "word";
word = string.Concat(word, "!!"); // Добавление подстроки
Console.WriteLine(word); // Выведет "word!!"
int compareResult = string.Compare(word, "word!"); // Сравнение строк
Console.WriteLine(compareResult); // Выведет 1 (строки не равны)
string.Compare() возвращает:
- 0, если строки равны.
- 1, если первая строка длиннее второй.
- -1, если первая строка короче второй.
Разбиение и объединение строк
Разбиение строки на массив строк:
string apple = "Alex,Bob,John";
string[] names = apple.Split(',');
foreach (string name in names)
{
Console.WriteLine(name);
}
Split() разбивает строку по указанному символу (запятой), создавая массив строк.
Обратная операция — объединение массива строк в одну с помощью Join():
string joinedString = string.Join(" ", names); // Объединение элементов массива через пробел
Console.WriteLine(joinedString); // Выведет "Alex Bob John"
Функции обработки строк: Trim(), Substring(), StartsWith(), ToLower(), ToUpper()
string text = " Hello world! ";
Console.WriteLine(text.Trim()); // Удаляет пробелы в начале и конце строки
Console.WriteLine(text.Substring(2, 5)); // Возвращает подстроку с 2 по 6 символ (включительно)
Console.WriteLine(text.StartsWith("Hello")); // Проверяет, начинается ли строка с "Hello"
Console.WriteLine(text.ToLower()); // Приводит строку к нижнему регистру
Console.WriteLine(text.ToUpper()); // Приводит строку к верхнему регистру
Работа с файлами
Подключаем библиотеку System.IO:
using System.IO;
Создаём объект FileStream для записи в файл:
string filePath = "info.txt";
using (FileStream stream = new FileStream(filePath, FileMode.OpenOrCreate))
{
Console.WriteLine("Введите текст:");
string text = Console.ReadLine();
byte[] array = System.Text.Encoding.Default.GetBytes(text);
stream.Write(array, 0, array.Length);
}
FileMode.OpenOrCreate создаст файл, если его нет, или откроет существующий для записи. Текст преобразуется в массив байтов перед записью.
Чтение из файла
Чтение данных из файла:
using (FileStream stream1 = File.OpenRead(filePath))
{
byte[] array = new byte[stream1.Length];
stream1.Read(array, 0, array.Length);
string textFromFile = System.Text.Encoding.Default.GetString(array);
Console.WriteLine(textFromFile);
}
File.OpenRead() открывает файл для чтения. Данные считываются в массив байтов, затем преобразуются в строку. Работа с файлами происходит в изолированной области (using), гарантируя корректное закрытие файла.
Рассмотрены основные методы работы со строками и файлами в C#. Использование изолированных областей (using) при работе с файлами необходимо для корректного управления ресурсами.