Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Catch

Try

Лекция 8. Строки

Для работы со строками в языке C# существует несколько возможностей:

o используя символьный тип char(символ), который соответствует классу System.Char, для организации строки – массив символов типа char, который соответствует классу System.Array

o используя строки типа string

o используя строки типа StringBuilder

Работа с символами в С#

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

 

Таблица 8.1 – Основные методы класса System.Char

Метод Описание
GetNumericValue Возвращает числовое значение символа, если он является цифрой, и -1 в противном случае
GetUnicodeCategory Возвращает категорию Unicode-символа(Bce Unicode-символы разделены на категории, например, десятичные цифры (Decimal-DigitNumber), римские цифры (LetterNumber), разделители строк (LineSeparator), буквы в нижнем регистре (LowercaseLetter) и т. д.)
IsControl Возвращает true, если символ является управляющим
IsDigit Возвращает true, если символ является десятичной цифрой
IsLetter Возвращает true, если символ является буквой
IsLetterOrDigit Возвращает true, если символ является буквой или цифрой
IsLower Возвращает true, если символ задан в нижнем регистре
IsNumber Возвращает true, если символ является числом (десятичным или шестнадцатеричным)
IsPunctuation Возвращает true, если символ является знаком препинания
IsSeparator Возвращает true, если символ является разделителем
Is Upper Возвращает true, если символ записан в верхнем регистре
IsWhiteSpace Возвращает true, если символ является пробельным (пробел, перевод строки и возврат каретки)
Parse Преобразует строку в символ (строка должна состоять из одного символа)
ToLower Преобразует символ в нижний регистр
ToUpper Преобразует символ в верхний регистр
MaxValue, MinValue Возвращают символы с максимальным и минимальным кодами (эти символы не имеют видимого представления)

Пример применения методов класса System.Char

using System;

namespace ConsoleApplicationl

{ class Classl

{ static void Main()

{

char b = 'В', с = '\x63', d = '\u0032';

Console.WriteLine("{0} {1} {2}",b,c,d);

Console.WriteLine("{0}{1}{2}",char.ToLower(b),char.ToUpper(c), char.GetNumericValue(d));

char a;

do

{

Console.Write("Введите символ: ");

a = char.Parse(Console.ReadLine());

Console.WriteLine("Введен символ {0}, его код - {1}", a, (int)a);

if (char.IsLetter(a)) Console.WriteLine("Буква");

if (char.IsUpper(a)) Console.WriteLine("Верхний peгистр");

if (char.IsLower(a)) Console.WriteLine("Нижний peгистр");

if (char.IsControl(a)) Console.WriteLine("Управляющий");

if (char.IsNumber(a)) Console.WriteLine("Число");

if (char.IsPunctuation(a)) Console.WгiteLine("Paздeлитeль");

}

while (a!= 'q');

}

{

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

return;

} } } }

В приведенном примере вывод символа сопровождается его кодом в десятичном виде. Для вывода кода используется явное преобразование к целому типу. Явное преобразование из символов в строки и обратно в С# не существует, неявным же образом любой объект, в том числе и символ, может быть преобразован в строку, например:

string s = 'к' + 'о' + 'т'; // результат - строка "кот"

При вводе и преобразовании могут возникать исключительные ситуации, например, если пользователь введет пустую строку. Для «мягкого» завершения программы предусмотрена обработка исключений.

Массив символов, как и массив любого иного типа, построен на основе базового класса 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"):

}}}





Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 727; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.