Студопедия

КАТЕГОРИИ:


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

Доступ к отдельным символам в строке

Работа со строками

Класс string (System.String) содержит множество полезных методов, позволяющих, например:

• Конкатенировать две и более строк

• Сравнить две строки

• Обратиться к отдельным символам или подстрокам заданной строки

• Вставить часть одной строки в другую

• Скопировать строку

• Определить число символов в строке

Для использования этих методов требуется определенная система идентификации отдельных символов и подстрок в строке. Предположим, например, что нужно ско­пировать подстроку "is" следующей строки:

"This is string"

Для решения такой задачи в классе string применяется целочисленный индекс, от­считываемый от 0, а не от 1 (рис. 1.). Очевидно, что он нумерует все символы, вклю­чая пробелы и знаки пунктуации.

 

                           
T H I S   I S   S T R I N G

 

Чтобы обратиться к подстроке "is", необходимо написать команду со следующим смыслом: "прочесть 2 символа, начиная с позиции 5". В строке 3 следующего фраг­мента показано, как это делается в С#:

string andString;

string myString = "This is string";

andString = myString.SubString(5, 2);

Здесь применяется метод Substring класса string. Он копирует "is" из myString в andString. Таким образом, выражение myString.SubString(5, 2) указывает программе возвратить подстроку строки myString, начинающуюся в пози­ции 5 и содержащую 2 символа.

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

char.IsWhiteSpace(ch)

Здесь ch это анализируемый символ.

Создадим программу, которая выводит количество символов в тексте, а также количество слов в тексте.

using System;

class TextAnalyzer

{

public static void Main()

{

string myText;

int numWhitespaceChars = 0;

int numWords = 0;

char ch;

int index = 0;

 

Console.WriteLine("Please enter text:");

myText = Console.ReadLine();

myText = myText.ToUpper();

 

while(index < myText.Length)

{

ch = myText[index];

if(char.IsWhiteSpace(ch))

numWhitespaceChars++;

index++;

}

numWords = numWhitespaceChars + 1;

Console.WriteLine("Text analysis:");

Console.WriteLine("Number of symbols: {0:N0}", index);

Console.WriteLine("Number of words: {0:N0}", numWords);

Console.ReadLine();

 

}

}

 

Другие методы необходимые для анализа текста

char.lsLetter(ch) – определяет является ли текущий символ буквой.

char.IsDigit(ch) – определяет является ли текущий символ цифрой.

<== предыдущая лекция | следующая лекция ==>
Тема 7. Специальные типы | Разработка алгоритма выборки слов
Поделиться с друзьями:


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


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



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




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