Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 8. Строки.doc
Скачиваний:
5
Добавлен:
02.05.2019
Размер:
126.98 Кб
Скачать

Массивы символов

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

Пример обработки строк (как массива символов) с применением класса System.Array

using System;

namespace ConsoleApplication1

{ class Class1

{ static void Main()

{

char[] a = { 'm', 'a', 's', 's', 'i', 'v }; //инициализация массива символов поэлементно

// ТоCharАггау()- метод класса string – разбивает строку на символы

char[] b = "а роза упала на лапу азора".ТоCharАггау();

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

int pos = Array.IndexOf( a, 'm' );

a[pos] = 'M';

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

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

Array.Reverse( b );

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

}

public static void PrintArray( string s, Array a )

{

Console.WriteLine( s );

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

Console.WriteLine( "\n" ):

}}}

Строки типа string

Тип string, предназначенный для работы со строками символов в кодировке Unicode, является встроенным типом С#. Ему соответствует базовый класс System.String библиотеки .NET.

Создать строку можно несколькими способами:

string s; // объявление строки, без выделения памяти

string t = "qqq"; // инициализация строковым литералом

string u = new string (' ', 20); // создание строки из 20 пробелов

char[] а = { '0', '0', '0' }; // создание строки как массива символов и ее инициализация

string v = new string (a); // создание строки из массива символов

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

  • присваивание (=);

  • проверка на равенство (= =);

  • проверка на неравенство (!=);

  • обращение по индексу ([ ]);

  • сцепление (конкатенация) строк (+).

Несмотря на то, что строки являются ссылочным типом данных, на равенство и неравенство проверяются не ссылки, а значения строк.

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

В классе System.String предусмотрено множество методов, полей и свойств, поз­воляющих выполнять со строками практически любые действия. Основные элементы класса приведены в таблице 8.2.

Таблица 8.2 – Основные элементы класса System.String

Метод

Описание

Compare

Сравнение двух строк в лексикографическом (алфавитном) порядке. Разные реализации метода позволяют сравнивать строки и подстроки с учетом и без учета регистра и особенностей национального представления дат

CompareOrdinal

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

CompareTo

Сравнение текущего экземпляра строки с другой строкой

Concat

Конкатенация (соединение) строк. Метод допускает сцепление произвольного числа строк

Copy

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

Empty

Пустая строка (только для чтения)

Format

Форматирование в соответствии с заданными спецификаторами формата

IndexOf,IndexOfAny, LastIndexOf, LastIndexOfAny

Определение индексов первого и последнего вхождения заданной подстроки или любого символа из заданного набора

Insert

Вставка подстроки в заданную позицию

Intern, IsInterned

Возвращает ссылку на строку, если такая уже существует. Если строки нет, Intern добавляет строку во внутренний пул, Islntern возвращает nul1

Join

Слияние массива строк в единую строку.Между элементами массива вставляются разделители

Length

Длина строки (количество символов)

PadLeft,PadRight

Выравнивание строки по левому или правому краю путем вставки нужного числа пробелов в начале или в конце строки

Remove

Удаление подстроки из заданной позиции

Продолжение таблицы 8.2

Метод

Описание

Replace

Замена всех вхождений заданной подстроки или символа новыми подстрокой или символом

Split

Разделяет строку на элементы, используя заданные разделители. Результаты помещаются в массив строк

StartWith, EndWith

Возвращает true или false в зависимости от того, начинается или заканчивается строка заданной подстрокой

Substring

Выделение подстроки, начиная с заданной позиции

ToCharArray

Преобразование строки в массив символов

ToLower,ToUpper

Преобразование символов строки к нижнему или верхнему регистру

Trim,TrimStart,TrimEnd

Удаление пробелов в начале и конце строки или только с одного ее конца (обратные по отношению к методам PadLeft и PadRlght действия)

Пример обработки строк типа string

using System;

namespace ConsoleApplicationl

{ class Classl

{ static void Main()

{

string s = "прекрасная королева Изольда";

Console.WriteLine( s );

string sub = s.Substring( 3 ).Remove( 12, 2 );

Console.WriteLine( sub );

string[] mas = s.Split(' ');

string joined = string.Join( "! ", mas );

Console.WriteLine( joined );

Console.WriteLine( "Введите строку" );

string x = Console.ReadLine();

Console.WriteLine( "Вы ввели строку " + x );

double a = 12.234;

int b = 29;

Console.WriteLine( " a = {0,6:C} b = {1,2:X}", a, b ); //неявный вызов метода Format

Console.WriteLine( " a = {0,6:0.##} b = {1,5:0.# ' руб. '}",a, b );//пользовательский шаблон

Console.WriteLine("a = {0:F3} b = {1:D3}", a, b); //задание ширины дробной части

} } }

прекрасная королева Изольда

красная корова Изольда

прекрасная! королева! Изольда

Введите строку

не хочу!

Вы ввели строку не хочу!

а = 12,23р. b = 1D

а = 12,23 b = 29 руб.