Программирование >>  Программирование с использованием ajax 

1 ... 37 38 39 [ 40 ] 41 42 43 ... 396


не будет. Потребуется усечь введенную строку что можно сделать с помощью команды

<строка>.Тг1т():

string userResponse = Console.ReadLine(); userResponse = userResponse.Trim(); if (userResponse.ToLower0 == yes )

Выполнение действия в ответ.

Применение такого подхода позволит также распознавать и такие строки, как:

YES Yes

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

char[] trimChars={ е, slustring userResponse = Console.ReadLine (); userResponse = userResponse.ToLower (); userResponse = userResponse.Trim(trimChars); if (userResponse == y ) {

Выполнение действия в ответ.

Этот код предусматривает устранение любых вхождений символов пробела, буквы е и буквы S в начале или конце строки. В случае отсутствия любых других символов в строке это будет приводить к распознаванию таких строк, как

Yeeeees

у II

и т.д.

Еще можно применять команды <строка>. TrimStart () и <строка>. TrimEnd (), которые будут отсекать символы пробела, соответственно, в начале и конце строки. С ними тоже можно задавать массивы char.

Существуют еще две других строковых команды, которые можно использовать для манипулирования пробелами в строках: <строка>. PadLef t () и <строка>. PadRight (). Эти команды позволяют добавлять пробелы слева и справа от строки для принудительного приведения ее к желаемой длине. Применяются они следующим образом:

<строка>. PadX {<желаемая длина>) ;

Ниже приведен пример:

myString = Aligned ;

myString = myString.PadLeft(10) ;

Выполнение этого кода приведет к добавлению слева от слова Aligned в myString трех пробелов. Данные команды могут быть очень полезными при выравнивании строк в столбцах, что является особенно удобным для позиционирования строк, содержащих числа.

Как и команды усечения, эти команды тоже можно использовать вторым способом, предоставляя в них символ, который должен применяться для дополнения строки. Указывать разрешено только один символ char, а не массив символов char, как в случае усечения:

myString = Aligned ;

myString = myString.PadLeft(10, -) ;



Выполнение этого кода приведет к добавлению в начале myString трех символов -.

Существует еще очень много подобных команд для манипулирования строками, но большинство из них полезно только в специфических ситуациях. Поэтому они будут рассматриваться по мере их применения в последующих главах. Прежде чем продолжить, однако, стоить рассмотреть еще одну функциональную возможность, доступную как в Visual С# 2008 Express Edition, так и в Visual Studio 2008, действие которой уже можно было заметить в предыдущих главах и особенно в этой. В следующем практическом занятии демонстрируется функция автоматического завершения команд (auto-completion), посредством которой IDE пытается помогать разработчику, предлагая различные варианты кода, которые тот может захотеть вставить.

Практнчеси *тмДр]

1. Создайте новое консольное приложение по имени Ch05Ex05 и сохраните его в каталоге С: \BegVCSharp\Chapter05.

2. Введите в файле Program. cs следующий код, в точности набирая указанные символы и обращая внимание на всплывающие окна, которые будут появляться по ходу:

static void Main(string[] args)

string myString = This is a test. ; char[] separator = { }; string[] myWords; myWords = myString.

♦ clone

♦ CompereTo % Containj

♦ CopyTo

♦ EndjWtth % Equals

♦ GetEnumerator

♦ GetHajhCode

♦ GetType

♦ GctTypeCode

3. После ввода последней точки должно появиться окно, показанное на рис. 5.12.

4. Не передвигая курсор, введите s. Это приведет к изменению внешнего вида отображающегося окна и появлению всплывающей подсказки, как показано на рис. 5.13 (эта подсказка будет желтого цвета).

5. Введите следующие символы: (separator) ;. После этого всплывающее окно должно исчезнуть, а код будет выглядеть следующим образом:

static void Main(string[] args)

Рис. 5.12. Окно, появляющееся после ввода последней точки

string myString = This is a test. ; char[] separator = ( }; string [] myWords;

myWords = myString. Split (separator) ;


Tolowerlnveiiant

stnngO string Split(stringO separator, int count, StringSpliroptions options) {* 5 overload(s))

Returns a stnng array that contains the substnngs in this stnng that are delimited l}y elements of a specified string array Parameters specif the maximum number of substnngs to retum and whether to return empty array elements

Exceptions System ArgumenroutOfRangeException System ArgumentException

Puc. 5.13. Отображени£ всплывающей подскажи



7. Запустите приложение. На рис. 5.14 показан результат, который должен получиться.


Рис. 5.14. Приложение Ch05Ex05 в действии

Описание полученных результатов

в приведенном коде важно обратить внимание на два таких главных момента: использование новой строковой команды и применение функции автоматического завершения кода. Новая строковая команда - <string>. Split () - преобразует строку string в массив string, разбивая на части в указанных точках. Эти точки принимают форму массива char, который в данном случае просто заполняется одним единственным элементом - символом пробела:

char[] separator = { };

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

string[] myWords;

myWords = myString.Split(separator);

Далее все слова в этом массиве с помощью цикла foreach выводятся на консоль:

foreach (string word in myWords) {

Console.WriteLine( {0} , word);

Каждое получаемое слово не содержит пробелов, ни внутри, ни в конце. Все они удаляются благодаря использованию команды Split ().

Теперь рассмотрим то, что касается функции автоматического завершения кода. VS и VCE являются весьма интеллектуальным программным обеспечением, которое способно разбираться в большинстве касающихся кода деталей по мере его ввода. Даже когда вводится только первый символ в новой строке, IDE уже пытается помочь, предлагая различные варианты ключевых слов, имен переменных, имен типов и т.д.

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

static void Main(string [ ] args) {

string myString = This is a test. ; char[] separator = { }; string[] myWords;

myWords = myString.Split(separator); foreach (string word in myWords) {

Console.WriteLine( {0} , word);

Console.ReadKey();



1 ... 37 38 39 [ 40 ] 41 42 43 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика