СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Строки в С# и методы работы с ними

Категория: Информатика

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

Данный методический материал содержит презентацию к уроку "Строки в С# и методы работы с ними". Материал предназначен для подготовки к занятиям по данной теме, а также  для студентов, изучающих язык С# в дисциплинах "Основы алгоритмизации и программирования" и "Прикладное программирование". 

Просмотр содержимого документа
«Строки в С# и методы работы с ними»

Строки в С # . Стандартные методы для работы со строками.

Строки в С # . Стандартные методы для работы со строками.

 Обработка текстовой информации является одной из самых распространенных задач современного программировании. С# предоставляет для ее решения широкий набор средств: символы  char , неизменяемые строки  string , изменяемые строки  StringBuider  и регулярные выражения  Regex . Символы char  Символьный тип  char  предназначен для хранения символа в кодировке Unicode. Символьный тип относится к встроенным типам данных С# и соответствует стандартному классу Сhar библиотеки .Net из пространства имен System. В этом классе определены статические методы, позволяющие задавать вид и категорию символа, а также преобразовывать символ в верхний или нижний регистр, в число

Обработка текстовой информации является одной из самых распространенных задач современного программировании. С# предоставляет для ее решения широкий набор средств: символы  char , неизменяемые строки  string , изменяемые строки  StringBuider  и регулярные выражения  Regex .

Символы char

Символьный тип  char  предназначен для хранения символа в кодировке Unicode. Символьный тип относится к встроенным типам данных С# и соответствует стандартному классу Сhar библиотеки .Net из пространства имен System. В этом классе определены статические методы, позволяющие задавать вид и категорию символа, а также преобразовывать символ в верхний или нижний регистр, в число

 Используя символьный тип можно организовать массив символов и работать с ним на основе базового класса  Array : static void Main() {  char[] a ={ 'm', 'a', ' Х ', 'i', 'M', 'u', 'S' , '!', '!', '!' };  char [] b=

Используя символьный тип можно организовать массив символов и работать с ним на основе базового класса  Array :

static void Main()

{

char[] a ={ 'm', 'a', ' Х ', 'i', 'M', 'u', 'S' , '!', '!', '!' };

char [] b="кол около колокола".ToCharArray(); //преобразование строки в массив символов

PrintArray("Исходный массив а:", a);

for (int x=0;x

if (char.IsLower(a[x])) a[x]=char.ToUpper(a[x]);

PrintArray("Измененный массив а:", a);

PrintArray("Исходный массив b:", b);

Array.Reverse(b);

PrintArray(" Измененный массив b:", b);

}

static void PrintArray(string line, Array a)

{

Console.WriteLine(line);

foreach( object x in a) Console.Write(x);

Console.WriteLine('\n');}

Неизменяемые строки string  Тип string , предназначенный для работы со строками символов в кодировке Unicode , является встроенным типом С#. Ему соответствует базовый тип класса  System.String  библиотеки .Net. Каждый объект  string  - это неизменяемая последовательность символов Unicode , т.е. методы, предназначенные для изменения строк, возвращают измененные копии, исходные же строки остаются неизменными.  Класс  string  обладает богатым набором методов для сравнения строк, поиска в строке и других действий со строками .

Неизменяемые строки string

Тип string , предназначенный для работы со строками символов в кодировке Unicode , является встроенным типом С#. Ему соответствует базовый тип класса  System.String  библиотеки .Net. Каждый объект  string  - это неизменяемая последовательность символов Unicode , т.е. методы, предназначенные для изменения строк, возвращают измененные копии, исходные же строки остаются неизменными.

Класс  string  обладает богатым набором методов для сравнения строк, поиска в строке и других действий со строками .

Примеры использования методов для неизменяемых строк string static void Main() {  string str1 =

Примеры использования методов для неизменяемых строк

string

static void Main()

{

string str1 =" Первая строка ";

string str2 = string.Copy(str1);

string str3 = "Вторая строка";

string str4 = "ВТОРАЯ строка";

string strUp, strLow;

int result, idx;

Console.WriteLine("str1: " + str1);

Console.WriteLine(" Длина строки str1: " +str1.Length);

// Создаем прописную и строчную версии строки str1.

strLow = str1.ToLower();

strUp = str1.ToUpper();

Console.WriteLine(" Строчная версия строки str1: " +strLow);

Console.WriteLine(" Прописная версия строки str1: " +strUp);

Console.WriteLine();

// Сравниваем  строки  result = str1.CompareTo(str3);  if (result == 0) Console.WriteLine(

// Сравниваем строки

result = str1.CompareTo(str3);

if (result == 0) Console.WriteLine("str1 и str3 равны .");

else if (result

else Console.WriteLine("str1 больше , чем str3");

Console.WriteLine();

//сравниваем строки без учета регистра

result = String.Compare(str3,str4,true);

if (result == 0) Console.WriteLine("str3 и str4 равны без учета регистра .");

else Console.WriteLine("str3 и str4 не равны без учета регистра .");

Console.WriteLine();

// Сравнение  частей  строк  result = String.Compare(str1, 4, str2, 4, 2);  if (result == 0) Console.WriteLine(

// Сравнение частей строк

result = String.Compare(str1, 4, str2, 4, 2);

if (result == 0) Console.WriteLine(" часть str1 и str2 равны ");

else Console.WriteLine(" часть str1 и str2 не равны ");

Console.WriteLine();

// Поиск строк

idx = str2.IndexOf(" строка ");

Console.WriteLine("Индекс первого вхождения подстроки строка: " + idx);

idx = str2.LastIndexOf("о");

Console.WriteLine("Индекс последнего вхождения символа о: " + idx);

// Конкатенация

string str=String.Concat(str1, str2, str3, str4);

Console.WriteLine(str);

 // Удаление  подстроки  str=str.Remove(0,str1.Length);  Console.WriteLine(str);  //Замена подстроки

// Удаление подстроки

str=str.Remove(0,str1.Length);

Console.WriteLine(str);

//Замена подстроки "строка" на пустую подстроку

str=str.Replace(" строка ","");

Console.WriteLine(str);

}

Очень важными методами обработки строк, являются методы разделения строки на элементы  Split  и слияние массива строк в единую строку  Join .

static void Main()

{

string poems = "тучки небесные вечные странники";

char[] div = { ' '}; //создаем массив разделителей

// Разбиваем строку на части,  string[] parts = poems.Split(div);  Console.WriteLine(

// Разбиваем строку на части,

string[] parts = poems.Split(div);

Console.WriteLine("Результат разбиения строки на части: ");

for (int i = 0; i

Console.WriteLine(parts[i]);

// Теперь собираем эти части в одну строку, в качестве разделителя используем символ |

string whole = String.Join(" | ", parts);

Console.WriteLine(" Результат сборки : ");

Console.WriteLine(whole);

}

 Вызов статических методов происходит через обращение к имени класса, например, String.Concat(str1, str2), в остальных случаях через обращение к экземплярам класса, например, str.ToLower().  Изменяемые строки  Чтобы создать строку, которую можно изменять, в С# предусмотрен класс StringBuilder, определенный в пространстве имен System.Text. Объекты этого класса всегда объявляются с явным вызовом конструктора класса (через операцию new ).

Вызов статических методов происходит через обращение к имени класса, например, String.Concat(str1, str2), в остальных случаях через обращение к экземплярам класса, например, str.ToLower().

Изменяемые строки

Чтобы создать строку, которую можно изменять, в С# предусмотрен класс StringBuilder, определенный в пространстве имен System.Text. Объекты этого класса всегда объявляются с явным вызовом конструктора класса (через операцию new ).

Примеры использования методов для изменяемых строк StringBuilder  static void Main() { try  {  StringBuilder str=new StringBuilder(

Примеры использования методов для изменяемых строк StringBuilder

static void Main()

{ try

{

StringBuilder str=new StringBuilder("Площадь"); PrintString(str); str.Append(" треугольника равна "); PrintString(str); str.AppendFormat(" {0:f2} см ", 123.456); PrintString(str); str.Insert(8, " данного "); PrintString(str); str.Remove(7, 21); PrintString(str); str.Replace(" а ", " о "); PrintString(str);

StringBuilder str1=new StringBuilder(Console.ReadLine()); StringBuilder str2=new StringBuilder(Console.ReadLine());

Console.WriteLine(str1.Equals(str2));

}

 catch {  Console.WriteLine(

catch

{

Console.WriteLine(" Вознико исключение ");

}

}

static void PrintString(StringBuilder a)

{

Console.WriteLine(" Строка : "+a); Console.WriteLine(" Текущая длина строки " +a.Length); Console.WriteLine(" Объем буфера "+a.Capacity); Console.WriteLine(" Максимальный объем буфера "+a.MaxCapacity); Console.WriteLine();

}