Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Строки в C#: основы, операции и продвинутые техники

Освоение строк в C#: основы, операции и продвинутые техники

В этом уроке мы изучим строки в C# и их методы на примерах.

В C# строка — это последовательность символов. Например, "hello" — строка, содержащая символы 'h', 'e', 'l', 'l', 'o'.

Для создания строки используется ключевое слово string. Например:

// создание строки
string str = "C# Programming";

Здесь мы создали string с именем str и присвоили текст "C# Programming". В C# строки обозначаются двойными кавычками.


Пример: Создание строки в C#

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            // создание строк
            string str1 = "C# Programming";
            string str2 = "Programiz";
            // вывод строк
            Console.WriteLine(str1);
            Console.WriteLine(str2);
            Console.ReadLine();
        }
    }
}

Вывод

C# Programming
Programiz

В примере созданы две строки str1 и str2 и выведены на консоль.

Примечание: Переменная строки в C# не является примитивным типом вроде int, char и т.д. Это объект класса String.


Операции со строками

Класс string в C# предоставляет различные методы для операций над строками. Рассмотрим наиболее часто используемые.

1. Получение длины строки

Для определения длины используется свойство Length. Например:

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            string str = "C# Programming";
            Console.WriteLine("string: " + str);
            // длина строки
            int length = str.Length;
            Console.WriteLine("Length: " + length);
            Console.ReadLine();
        }
    }
}

Вывод

string: C# Programming
Length: 14

Свойство Length вычисляет общее число символов в строке и возвращает его.


2. Объединение двух строк в C#

Объединить две строки можно методом Concat(). Например:

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            string str1 = "C# ";
            Console.WriteLine("string str1: " + str1);
            string str2 = "Programming";
            Console.WriteLine("string str2: " + str2);
            // объединение двух строк
            string joinedString = string.Concat(str1, str2);
            Console.WriteLine("Joined string: " + joinedString);
            Console.ReadLine();
        }
    }
}

Вывод

string str1: C#
string str2: Programming
Joined string: C# Programming

Обратите внимание на строку:

string joinedString = string.Concat(str1, str2);

Метод Concat() объединяет str1 и str2 и присваивает результат joinedString.

Также можно объединять строки оператором +. Подробнее см. C# string Concat.


3. Сравнение двух строк в C#

Для сравнения строк используется метод Equals(). Он проверяет, равны ли две строки. Например:

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            string str1 = "C# Programming";
            string str2 = "C# Programming";
            string str3 = "Programiz";
            // сравнение str1 и str2
            Boolean result1 = str1.Equals(str2);
            Console.WriteLine("string str1 and str2 are equal: " + result1);
            // сравнение str1 и str3
            Boolean result2 = str1.Equals(str3);
            Console.WriteLine("string str1 and str3 are equal: " + result2);
            Console.ReadLine();
        }
    }
}

Вывод

string str1 and str2 are equal: True
string str1 and str3 are equal: False

Созданы три строки str1, str2, str3. Метод Equals() проверяет равенство.


Неизменяемость строковых объектов

В C# строки неизменяемы (immutable). Это значит: созданная строка не может быть изменена.

Разберем на примере:

// создание строки
string str = "Hello ";

Переменная str содержит строку "Hello ".

Предположим, мы хотим изменить строку str:

// добавить строку "World"
// к предыдущей строке
str = string.Concat(str, "World");

Мы используем Concat() для добавления "World" к str.

Но как мы можем изменить строку, если они неизменяемы?

Вот что происходит:

  1. C# берет значение строки "Hello ".
  2. Создает новую строку, добавляя "World" к "Hello ".
  3. Создает новый строковый объект, присваивает ему значение "Hello World" и сохраняет в str.
  4. Исходная строка "Hello ", присвоенная str, освобождается для сборки мусора, так как на неё нет ссылок.

Экранирующие последовательности в строках

Экранирующий символ используется для вставки специальных символов внутри строки.

Допустим, нужно включить двойные кавычки в строку.

// включить двойные кавычки
string str = "This is the "String" class";

Так как строки ограничены двойными кавычками, компилятор расценит "This is the " как строку, и код вызовет ошибку.

Для решения используем экранирующий символ \" в C#. Например:

// использование экранирующего символа
string str = "This is the \"String\" class.";

Теперь с \ перед двойной кавычкой " мы можем включить её в строку.

Некоторые экранирующие последовательности в C#:

ПоследовательностьИмя символа
\'одинарная кавычка
\"двойная кавычка
\\обратный слеш
\0null
\nновая строка
\tгоризонтальная табуляция

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

В C# можно использовать интерполяцию строк для вставки переменных внутрь строки. Строковый литерал должен начинаться с символа $. Например:

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            // создание строки
            string name = "Programiz";
            // интерполяция строки
            string message = $"Welcome to {name}";
            Console.WriteLine(message);
            Console.ReadLine();
        }
    }
}

Вывод

Welcome to Programiz

Здесь переменная name вставлена внутрь строки message.

string message = $"Welcome to {name}";

Обратите внимание:


Методы класса string в C#

Существует множество методов строки. Некоторые из них:

МетодОписание
Format()возвращает отформатированную строку
Split()разбивает строку на подстроки
Substring()возвращает подстроку
Compare()сравнивает строковые объекты
Replace()заменяет указанный старый символ на новый
Contains()проверяет, содержит ли строка подстроку
Join()объединяет заданные строки с разделителем
Trim()удаляет начальные и конечные пробелы
EndsWith()проверяет, заканчивается ли строка заданной подстрокой
IndexOf()возвращает позицию указанного символа
Remove()удаляет символы из строки
ToUpper()преобразует строку в верхний регистр
ToLower()преобразует строку в нижний регистр
PadLeft()дополняет строку слева пробелами или заданным символом
PadRight()дополняет строку справа пробелами или заданным символом
StartsWith()проверяет, начинается ли строка с заданной подстроки
ToCharArray()преобразует строку в массив char
LastIndexOf()возвращает индекс последнего вхождения подстроки

Часто задаваемые вопросы

1. Как создать массив строк в C#?

Массив строк создается так же, как массив для других типов. Например:

using System;
namespace CsharpString {
    class Test {
        public static void Main(string[] args) {
            // массив строк
            string[] animals = {"Monkey", "Dog", "Cat"};
            // вывод элементов
            Console.WriteLine(animals[0]);
            Console.WriteLine(animals[1]);
            Console.WriteLine(animals[2]);
            Console.ReadLine();
        }
    }
}

Вывод

Monkey
Dog
Cat

2. Разница между string и String в C#

Технической разницы между string и String нет. В C# string — псевдоним для System.String.

Рекомендуется использовать string, так как он работает даже без using System;.

Язык C

  1. Освоение строк в Java: создание, методы и лучшие практики
  2. Строковые представления в Java Enums: настройка toString() и лучшие практики
  3. Функции строк в C++: strcpy, strcat, strlen, strcmp — практические примеры
  4. Строки в C просто: объявление, ввод, вывод и библиотечные функции
  5. Понимание String.charAt() в Java: синтаксис, возвращаемый тип, исключения и пример
  6. Освоение String.endsWith() в Java: проверка суффиксов строки с примерами
  7. Мастерство метода strip() в Python: подробное руководство и практические примеры
  8. Мастерство метода str.count() в Python: как подсчитывать символы и подстроки с примерами
  9. Мастерство строк форматирования format() в Python: понятные примеры
  10. Python len(): практическое руководство по измерению длины объектов