C# - Строки: Путеводитель для начинающих

Здравствуйте,野心勃勃的程序设计师们! Сегодня мы окунемся в奇妙ный мир строк в C#. Не волнуйтесь, если вы еще ни разу не писали строку кода - я буду вашим доброжелательным проводником в этом путешествии. Поехали!

C# - Strings

Что такое строка?

Прежде чем мы углубимся в детали, давайте поймем, что такое строка. В программировании строка - это простоsequence из символов. Это может быть слово, предложение или даже целый абзац. Представьте себе "строку" букв, чисел или символов, связанных вместе.

Создание объекта строки

В C# создание строки так же просто, как pie. Давайте посмотрим на несколько способов сделать это:

string greeting = "Hello, World!";
string name = "Alice";
string empty = "";
string nullString = null;

В этих примерах:

  • greeting - это строка, содержащая "Hello, World!"
  • name - это строка, содержащая "Alice"
  • empty - это пустая строка (она существует, но не содержит символов)
  • nullString - это нулевая строка (она даже не существует в памяти)

помните, что строки в C# заключены в двойные кавычки. Если вы попытаетесь использовать одинарные кавычки, C# подумает, что вы говорите о единичном символе, а не о строке.

Свойства класса String

Строки в C# имеют некоторые встроенные свойства, которые могут быть очень полезны. Давайте рассмотрим несколько из них:

Length

Свойство Length告诉我们, сколько символов содержит строка.

string message = "Hello, C#!";
int length = message.Length;
Console.WriteLine($"The message has {length} characters.");
// Вывод: The message has 9 characters.

Empty и IsNullOrEmpty

Иногда нам нужно проверить, пуста ли строка. C# предоставляет удобные способы сделать это:

string emptyString = "";
bool isEmpty = string.Empty == emptyString;
bool isNullOrEmpty = string.IsNullOrEmpty(emptyString);

Console.WriteLine($"Is the string empty? {isEmpty}");
Console.WriteLine($"Is the string null or empty? {isNullOrEmpty}");
// Вывод:
// Is the string empty? True
// Is the string null or empty? True

Методы класса String

Теперь перейдем к интересной части - строковым методам! Это как особые способности, которые имеют строки, позволяя нам манипулировать и анализировать их различными способами.

ToUpper() и ToLower()

Эти методы изменяют регистр строки:

string mixedCase = "HeLLo, WoRLd!";
string upperCase = mixedCase.ToUpper();
string lowerCase = mixedCase.ToLower();

Console.WriteLine(upperCase); // Вывод: HELLO, WORLD!
Console.WriteLine(lowerCase); // Вывод: hello, world!

Trim(), TrimStart(), и TrimEnd()

Эти методы удаляют пробельные символы из строк:

string paddedString = "   Hello, World!   ";
string trimmed = paddedString.Trim();
string trimmedStart = paddedString.TrimStart();
string trimmedEnd = paddedString.TrimEnd();

Console.WriteLine($"Trimmed: '{trimmed}'");
Console.WriteLine($"Trimmed Start: '{trimmedStart}'");
Console.WriteLine($"Trimmed End: '{trimmedEnd}'");
// Вывод:
// Trimmed: 'Hello, World!'
// Trimmed Start: 'Hello, World!   '
// Trimmed End: '   Hello, World!'

Substring()

Этот метод позволяет нам извлечь часть строки:

string sentence = "The quick brown fox jumps over the lazy dog.";
string extract = sentence.Substring(4, 5);
Console.WriteLine(extract); // Вывод: quick

IndexOf() и LastIndexOf()

Эти методы помогают нам найти положение символа или подстроки:

string text = "Hello, Hello, Hello";
int firstIndex = text.IndexOf("Hello");
int lastIndex = text.LastIndexOf("Hello");

Console.WriteLine($"First 'Hello' at index: {firstIndex}");
Console.WriteLine($"Last 'Hello' at index: {lastIndex}");
// Вывод:
// First 'Hello' at index: 0
// Last 'Hello' at index: 14

Replace()

Этот метод заменяет occurrences заданной строки:

string original = "I like apples, apples are my favorite fruit.";
string replaced = original.Replace("apples", "oranges");
Console.WriteLine(replaced);
// Вывод: I like oranges, oranges are my favorite fruit.

Вот таблица, резюмирующая эти методы:

Метод Описание
ToUpper() Преобразует все символы в верхний регистр
ToLower() Преобразует все символы в нижний регистр
Trim() Удаляет пробельные символы с обоих концов
TrimStart() Удаляет пробельные символы с начала
TrimEnd() Удаляет пробельные символы с конца
Substring() Извлекает часть строки
IndexOf() Найдет первое occurrence подстроки
LastIndexOf() Найдет последнее occurrence подстроки
Replace() Заменяет все occurrence заданной строки

Примеры в действии

Теперь, когда мы узнали о этих свойствах и методах строки, давайте применим их в практическом примере:

string userInput = "   JoHn DoE   ";

// Очистка и стандартизация ввода
string cleanName = userInput.Trim().ToLower();

// Capitalize первую букву каждого слова
string[] nameParts = cleanName.Split(' ');
for (int i = 0; i < nameParts.Length; i++)
{
if (!string.IsNullOrEmpty(nameParts[i]))
{
nameParts[i] = char.ToUpper(nameParts[i][0]) + nameParts[i].Substring(1);
}
}

string formattedName = string.Join(" ", nameParts);

Console.WriteLine($"Original input: '{userInput}'");
Console.WriteLine($"Formatted name: '{formattedName}'");
// Вывод:
// Original input: '   JoHn DoE   '
// Formatted name: 'John Doe'

В этом примере мы берем грязный ввод пользователя, обрезаем пробельные символы, convert к нижнему регистру и затем capitalizing первую букву каждого слова. Это.common задача во многих приложениях, таких как обработка форм или cleaning данных.

Заключение

Поздравляю! Вы только что сделали свои первые шаги в мир строк C#. Мы рассмотрели создание строк, использование их свойств и применение различных методов для их манипуляции. Помните, что практика делает perfect, так что не стесняйтесь экспериментировать с этими концепциями в вашем собственном коде.

Строки являются одним из самых часто используемых типов данных в программировании, и овладение ими даст вам прочную основу для вашего coding путешествия. Продолжайте исследовать, продолжайте программировать и, самое главное, получайте удовольствие от этого!

Счастливого кодирования, будущие мастера C#!

Credits: Image by storyset