КАТЕГОРИИ: Архитектура-(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, будет добавлено три символа тире. Пример работы со строками: { 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);
Дата добавления: 2014-01-05; Просмотров: 505; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |