Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Foreach (char character in myString)

Лекция 6. Действия над строками.

До сих пор все наши операции над строками сводились к выводу строк на консоль, чтению строк с консоли и объединению строк посредством оператора +. В процессе программирования более сложных приложений вы очень скоро убедитесь, что значительная их часть предполагает различные манипуляции со строками. Начнем с того, что переменная типа string — это всего лишь массив переменных типа char, доступных в режиме "только чтение". Иными словами, мы можем получить доступ к отдельным символам строки следующим образом:

string myString = “A string”;

char myChar = myString [1];

Однако присваивать отдельные символы таким способом нельзя. Для получения массива, доступного для записи, следует воспользоваться приведенным ниже кодом. В нем используется команда ToCharArray () переменной типа массива:

string myString = "A string";

char[] myChars = myString.ToCharArray();

Теперь мы можем выполнять манипуляции с массивом типа char обычным путем. Строки могут использоваться и в циклах foreach:

{

Console.WriteLine(“{0}”, character);

}

Как и в случае других массивов имеется возможность узнать число элементов с помощью myString.Length. Таким же образом можно определить общее количество символов в строке:

string myString = Console.ReadLine ();

Console.WriteLine("You typed {0} characters.", myString.Length);

Другим основополагающим способом работы со строками является использование команд в формате, аналогичном формату команды <string>.ToCharArray(). Существуют две простые, но очень полезные команды: <string>.ToLower() и <string>.ToUpper(). Они позволяют переводить всю строку целиком в нижний и верхний регистр соответственно. Чтобы оценить пользу от них, представьте ситуацию, когда вы хотите убедиться в поступлении от пользователя какого-то ответа, например, строки "yes". Если мы переведем всю введенную строку в нижний регистр, то сможем воспринять и такие строки, как "YES", "Yes", "yeS" и т. д.:

string userResponse = Console.ReadLine();

if (userResponse.ToLower() == "yes")

{

// выполнение действий в случае получения ответа

}

Обратите внимание, что эта команда, на самом деле не изменяет ту строку, к которой применяется. Напротив, использование этой команды для некоторой строки приводит к созданию новой строки, которую можно сравнить с какой-либо другой строкой (как показано выше) или присвоить другой переменной. В роли этой переменной может выступать переменная, над которой выполняется данная операция:

userResponse = userResponse.ToLower();

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

userResponse.ToLower ();

многого добиться не удастся!

Давайте посмотрим, что еще мы можем сделать для облегчения интерпретации ответов пользователя. Что произойдет в том случае, если пользователь случайно включил в начало или в конец своего ответа пробел? В таком варианте вышеприведенный код не сработает. Необходимо убрать из введенной строки все пробелы, чего можно добиться посредством команды <string>.Trim():

string userResponse = Console.ReadLine();

userResponse = userResponse,Trim();

if (userResponse.ToLower() == "yes")

{

// выполнение действий в случае получения ответа

}

В этом случае мы окажемся в состоянии определить строки, подобные следующим:

“ YES"

“Yes”

Такая же команда может быть использована для удаления любых других символов, которые задаются с помощью массива типа char, например:

char[] trimChars = {' ', 'е', 's'};

string userResponse = Console.ReadLine();

userResponse = userResponse.ToLower();

userResponse = userRe spon.se. Trim {trimChars);

if (userResponse= = “y”)

{

// выполнение действий в случае получения ответа

}

Это позволяет удалить все пробелы, символы "е" и символы "s", находящиеся в начале или в конце строки. Если предположить, что в строке отсутствуют какие-либо другие символы, то появится возможность определять строки:

"Yeeeees"

“У”

и им подобные.

Существует также возможность использовать команды <string>.TrimStart() и <string>. TrimEnd(), которые будут удалять пробелы только из начала или только из конца строки соответственно. В этих командах также имеется возможность задания массива типа char удаляемых символов. Имеются еще две команды работы со строками, которые выполняют манипуляции с пробелами внутри строк: <string>.PadLeft() и <s tring>. PadRight(). Эти команды позволяют дополнять строки пробелами слева или справа до заданной длины строки. Они могут использоваться следующим образом:

< string>. PadX(< требуемаяДлина>);

Например:

myString =”Aligned”;

myString = myString.PadLeft(10);

В результате к слову “Aligned”, содержащемуся в переменной myString, будут добавлены три пробела слева. Этот метод может оказаться полезным для выравнивания строк, располагаемых одна над другой, в частности, при расположении строк с номерами. Так же, как и в случае команд, предназначенных для удаления символов, описываемые команды допускают вариант использования, позволяющий задавать символ, которым будет дополняться строка. В данном случае, однако, следует задавать отдельный символ, а не массив символов. Например:

myString =”Aligned”;

myString = myString.PadLeft(10, ' - ');

В итоге в начало строки, хранящейся в переменной mystring, будет добавлено три символа тире.

Пример работы со строками:

static void Main (string [] args)

{

string myString = “This is a test.”;

char[] separator = (‘ ‘);

string[] myWords;

myWords = myString;

}

Обратите внимание, что, как только вы

введете последнюю точку, немедленно

раскроется окно, показанное на рисунке

справа.

Не изменяя положение курсора, наберите символ s.

Содержание окна изменится, а рядом с ним появится

Текст на желтом фоне.

 
 

 


Введите следующие символы: "(separator);". Окно закроется, а программа примет следующий вид:

static void Main (string [] args)

{

string myString = "This is a test.";

char[] separator = {‘ ‘};

string[] myWords;

myWords = myString.Split(separator);

}

Добавьте следующий код, обращая внимание на всплывающие окна:

static void Main(string[] args)

{

string myString = "This is a test.";

char [ ] separator = {‘ ‘};

string[] myWords;

myWords = myString.Split(separator);

<== предыдущая лекция | следующая лекция ==>
N Частными видами антероградной амнезии могут являться следующие формы заболеваний | Конструкторы и свойства строк
Поделиться с друзьями:


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


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



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




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