Презентация «Технология программировния. Строки»

Смотреть слайды в полном размере
Презентация «Технология программировния. Строки»

Вы можете ознакомиться с презентацией онлайн, просмотреть текст и слайды к ней, а также, в случае, если она вам подходит - скачать файл для редактирования или печати. Документ содержит 60 слайдов и доступен в формате ppt. Размер файла: 180.66 KB

Просмотреть и скачать

Pic.1
Технология программировния Строки
Технология программировния Строки
Pic.2
Работа с текстом В языке C# имеется много различных инструментов для работы с текстом Встроенные тип
Работа с текстом В языке C# имеется много различных инструментов для работы с текстом Встроенные типы данных – char и string Классы из стандартной библиотеки – StringBuilder Классы для работы с …
Pic.3
Отдельные символы Фреймворк . NET содержит специальный класс для работы с отдельными символами – Sys
Отдельные символы Фреймворк . NET содержит специальный класс для работы с отдельными символами – System. Char Использует UTF-16 для хранения одной буквы, таким образом символ занимает 2 байта В C# …
Pic.4
Отдельные символы char ch = 'A'; WriteLine(ch); ch = '\x5A'; WriteLine(ch); ch =
Отдельные символы char ch = 'A'; WriteLine(ch); ch = '\x5A'; WriteLine(ch); ch = '\u0058'; WriteLine(ch);
Pic.5
Отдельные символы char ch = new Char(); ch = (char)65; WriteLine(ch); int code = ch; WriteLine(code)
Отдельные символы char ch = new Char(); ch = (char)65; WriteLine(ch); int code = ch; WriteLine(code); string s = ch. ToString() + " = " + code; WriteLine(s);
Pic.6
Отдельные символы Цифры и буквы алфавитов обычно кодируются интервалами: 0 - 9 соответствует интерва
Отдельные символы Цифры и буквы алфавитов обычно кодируются интервалами: 0 - 9 соответствует интервал [65, 90] A - Z соответствует интервал [65, 90] a - z соответствует интервал [97, 122] А - Я …
Pic.7
Отдельные символы Класс char содержит достаточно много собственных методов. Большая часть из них исп
Отдельные символы Класс char содержит достаточно много собственных методов. Большая часть из них используется для определения типа символа. IsDigit – проверка на десятичную цифру IsLetter – проверка …
Pic.8
Отдельные символы В общем случае тип символа можно получить при помощи метода GetUnicodeCategory. Он
Отдельные символы В общем случае тип символа можно получить при помощи метода GetUnicodeCategory. Он возвращает одну из категорий, описанных в перечислении UnicodeCategory из пространства имен …
Pic.9
Отдельные символы WriteLine("GetUnicodeCategory:"); var c1 = char. GetUnicodeCategory(
Отдельные символы WriteLine("GetUnicodeCategory:"); var c1 = char. GetUnicodeCategory('A'); var c2 = char. GetUnicodeCategory(';'); WriteLine("'A' - …
Pic.10
Отдельные символы
Отдельные символы
Pic.11
Отдельные символы WriteLine("Метод IsLetter:"); WriteLine("'z' - IsLetter -
Отдельные символы WriteLine("Метод IsLetter:"); WriteLine("'z' - IsLetter - {0}", char. IsLetter('z')); WriteLine("'Я' - IsLetter - {0}", …
Pic.12
Отдельные символы WriteLine("Метод IsSeparator:"); WriteLine("' ' - IsSepar
Отдельные символы WriteLine("Метод IsSeparator:"); WriteLine("' ' - IsSeparator - {0}", char. IsSeparator(' ')); WriteLine("';' - IsSeparator - …
Pic.13
Отдельные символы ToLower – приводит символ к нижнему регистру ToUpper – приводит символ к верхнему
Отдельные символы ToLower – приводит символ к нижнему регистру ToUpper – приводит символ к верхнему регистру CompareTo – сравнивает два символа и возвращает разницу между их кодами
Pic.14
Массив символов По аналогии с языками С и С++ мы можем представить строку в виде массива символов. О
Массив символов По аналогии с языками С и С++ мы можем представить строку в виде массива символов. Особого смысла это не имеет, т. к. у нас уже есть тип string, но может быть полезно для понимания …
Pic.15
Массив символов char[] text = new [] {'H','e','l','l','
Массив символов char[] text = new [] {'H','e','l','l','o'}; for (int i = 0; i < text. Length; ++i) { if (char. IsLower(text[i])) { text[i] = char. …
Pic.16
Массив символов Стандартный класс string внутри представлен в виде массива символов. Поэтому у него
Массив символов Стандартный класс string внутри представлен в виде массива символов. Поэтому у него есть стандартный метод для его получения – ToCharArray
Pic.17
Массив символов static int IndexOf(char[] text1, char[] text2) { for (int i = 0; i < text1. Lengt
Массив символов static int IndexOf(char[] text1, char[] text2) { for (int i = 0; i < text1. Length; ++i) { bool isFound = true; for (int j = 0; j < text2. Length; ++j) { if (i + j >= text1. …
Pic.18
Массив символов char[] text1 = "Progress". ToCharArray(); char[] text2 = "ogre".
Массив символов char[] text1 = "Progress". ToCharArray(); char[] text2 = "ogre". ToCharArray(); int index = IndexOf(text1, text2); if (index >= 0) { for (int i = 0; i < …
Pic.19
Строки string Строки можно создавать при помощи строковых констант или конструктора string. Конструк
Строки string Строки можно создавать при помощи строковых констант или конструктора string. Конструктор имеет много вариантов, но наиболее полезными являются: Создание строки из символа, повторенного …
Pic.20
Строки string string hello = "Hello"; string separator = new string('-', 5); cha
Строки string string hello = "Hello"; string separator = new string('-', 5); char[] array = hello. ToCharArray(); string fromArray = new string(array); string strye = new …
Pic.21
Строки string В C# существуют два вида строковых констант: Обычные константы, которые представляют с
Строки string В C# существуют два вида строковых констант: Обычные константы, которые представляют строку символов, заключенную в кавычки Константы с предшествующим знаком @.
Pic.22
Строки string Обычные строковые константы могут содержать управляющие последовательности - \n, \t, \
Строки string Обычные строковые константы могут содержать управляющие последовательности - \n, \t, \r и т. д. В @-константах все символы трактуются в полном соответствии с их изображением. Символ …
Pic.23
Строки string WriteLine("\x50"); WriteLine(@"\x50"""); WriteLine("
Строки string WriteLine("\x50"); WriteLine(@"\x50"""); WriteLine("c:\folder\folder\file. txt"); WriteLine(@"c:\folder\folder\file. txt"); …
Pic.24
Строки string Над строками определены следующие операции: Присваивание = Строки являются ссылочным т
Строки string Над строками определены следующие операции: Присваивание = Строки являются ссылочным типом. Если есть две строки s1 и s2, то в результате выполнения выражения s2 = s1 произойдет …
Pic.25
Строки string string s1 = "ABC", s2 = "DEF"; string s3 = s1 + s2; string s4 = &q
Строки string string s1 = "ABC", s2 = "DEF"; string s3 = s1 + s2; string s4 = "ABCDEF"; WriteLine(s3); WriteLine("s3 == s4 ? {0}", s3 == s4); …
Pic.26
Методы класса string Compare – cравнение двух строк. Различные варианты метода позволяют сравнивать
Методы класса string Compare – cравнение двух строк. Различные варианты метода позволяют сравнивать как строки, так и подстроки. При этом можно учитывать или не учитывать регистр, особенности …
Pic.27
Методы класса string Concat – конкатенация строк. Допускает сцепление произвольного числа строк Copy
Методы класса string Concat – конкатенация строк. Допускает сцепление произвольного числа строк Copy – создается копия строки Format – выполняет форматирование в соответствии с заданными …
Pic.28
Методы класса string Join – конкатенация массива строк в единую строку. При этом между элементами ма
Методы класса string Join – конкатенация массива строк в единую строку. При этом между элементами массива вставляются разделители Split – осуществляет разделение строки на элементы
Pic.29
Методы класса string var txt = "А это пшеница, которая в темном" + "чулане хранится,&
Методы класса string var txt = "А это пшеница, которая в темном" + "чулане хранится," + " в доме, который построил Джек!"; WriteLine(txt);
Pic.30
Методы класса string string[] sentences = txt. Split(','); for (int i = 0; i < sentence
Методы класса string string[] sentences = txt. Split(','); for (int i = 0; i < sentences. Length; i++) { WriteLine("sentences[{0}] = {1}", i, sentences[i]); } WriteLine();
Pic.31
Методы класса string string join = string. Join(",", sentences); WriteLine("join = {0
Методы класса string string join = string. Join(",", sentences); WriteLine("join = {0}", join); WriteLine();
Pic.32
Методы класса string WriteLine(); string[] words = txt. Split(' '); for (int i = 0; i <
Методы класса string WriteLine(); string[] words = txt. Split(' '); for (int i = 0; i < words. Length; i++) { WriteLine("words[{0}] = {1}", i, words[i]); } WriteLine();
Pic.33
Методы класса string join = string. Join(" ", words); WriteLine("join = {0}", jo
Методы класса string join = string. Join(" ", words); WriteLine("join = {0}", join); WriteLine();
Pic.34
Методы класса string Методы Split и Join хорошо работают, когда при разборе используется только один
Методы класса string Методы Split и Join хорошо работают, когда при разборе используется только один разделитель. В этом случае сборка действительно является обратной операцией и позволяет …
Pic.35
Методы класса string Insert – вставляет подстроку в заданную позицию Remove – удаляет подстроку в за
Методы класса string Insert – вставляет подстроку в заданную позицию Remove – удаляет подстроку в заданной позиции Replace – заменяет подстроку в заданной позиции на новую подстроку Substring – …
Pic.36
Методы класса string IndexOf, IndexOfAny, LastIndexOf, LastIndexOfAny – определяются индексы первого
Методы класса string IndexOf, IndexOfAny, LastIndexOf, LastIndexOfAny – определяются индексы первого и последнего вхождения заданной подстроки или любого символа из заданного набора StartsWith, …
Pic.37
Класс StringBuilder В языке C# существует понятие неизменяемый (immutable) класс. Для такого класса
Класс StringBuilder В языке C# существует понятие неизменяемый (immutable) класс. Для такого класса невозможно изменить значение объекта. Методы могут создавать новый объект на основе существующего, …
Pic.38
Класс StringBuilder К таким неизменяемым классам относится и класс string. Ни один из методов этого
Класс StringBuilder К таким неизменяемым классам относится и класс string. Ни один из методов этого класса не меняет значения существующих объектов. Когда метод изменяет строку, результатом является …
Pic.39
Класс StringBuilder Класс StringBuilder позволяет компенсировать этот недостаток. Этот класс принадл
Класс StringBuilder Класс StringBuilder позволяет компенсировать этот недостаток. Этот класс принадлежит к изменяемым классам, и его можно найти в пространстве имен System. Text
Pic.40
Класс StringBuilder Специальных констант этого типа не существует, поэтому объекты этого класса объя
Класс StringBuilder Специальных констант этого типа не существует, поэтому объекты этого класса объявляются с явным вызовом конструктора класса. StringBuilder(string str, int cap) str - начальная …
Pic.41
Класс StringBuilder StringBuilder(string str, int start, int len, int cap) Параметры str, start, len
Класс StringBuilder StringBuilder(string str, int start, int len, int cap) Параметры str, start, len задают строку инициализации, cap - емкость объекта
Pic.42
Класс StringBuilder var s1 = new StringBuilder("ABC"); var s2 = new StringBuilder("DE
Класс StringBuilder var s1 = new StringBuilder("ABC"); var s2 = new StringBuilder("DEF"); var s3 = s2. Insert(0, s1. ToString()); WriteLine(s3); s3. Remove(3, 3); WriteLine(s3);
Pic.43
Класс StringBuilder Операция конкатенации (+) не определена над строками класса StringBuilder, ее ро
Класс StringBuilder Операция конкатенации (+) не определена над строками класса StringBuilder, ее роль играет метод Append, дописывающий новую строку в хвост уже существующей
Pic.44
Класс StringBuilder var s1 = new StringBuilder("ABC"); var s2 = new StringBuilder("DE
Класс StringBuilder var s1 = new StringBuilder("ABC"); var s2 = new StringBuilder("DEF"); var s3 = s1; s3. Append(s2); WriteLine(s3);
Pic.45
Класс StringBuilder var s4 = new StringBuilder("Zenon"); WriteLine(s4); s4[0] = 'L�
Класс StringBuilder var s4 = new StringBuilder("Zenon"); WriteLine(s4); s4[0] = 'L'; WriteLine(s4);
Pic.46
Класс StringBuilder Capacity - возвращает или устанавливает текущую емкость буфера MaxCapacity - воз
Класс StringBuilder Capacity - возвращает или устанавливает текущую емкость буфера MaxCapacity - возвращает максимальную емкость буфера. Результат один и тот же для всех экземпляров класса int …
Pic.47
Класс StringBuilder var s1 = new StringBuilder(10, 100); WriteLine("s1: capacity = {0}, max = {
Класс StringBuilder var s1 = new StringBuilder(10, 100); WriteLine("s1: capacity = {0}, max = {1}", s1. Capacity, s1. MaxCapacity); s1. Append("123"); WriteLine("s1: capacity …
Pic.48
Класс StringBuilder var s2 = new StringBuilder("Hello"); WriteLine("s2: capacity = {0
Класс StringBuilder var s2 = new StringBuilder("Hello"); WriteLine("s2: capacity = {0}, max = {1}", s2. Capacity, s2. MaxCapacity); s2. EnsureCapacity(20); WriteLine("s2: …
Pic.49
Класс StringBuilder for (int i = 0; i < 1000; ++i) { s1. Append("4"); }
Класс StringBuilder for (int i = 0; i < 1000; ++i) { s1. Append("4"); }
Pic.50
LINQ и строки Библиотека LINQ также может быть использована для обработки текста. Это достигается за
LINQ и строки Библиотека LINQ также может быть использована для обработки текста. Это достигается за счет того, что строка текста может быть представлена в виде массива, что и позволяет использовать …
Pic.51
LINQ и строки string aString = "ABCDE99F-J74-12-89A"; IEnumerable<char> stringQuery
LINQ и строки string aString = "ABCDE99F-J74-12-89A"; IEnumerable<char> stringQuery = from ch in aString where Char. IsDigit(ch) select ch; foreach (char c in stringQuery) { Write(c + …
Pic.52
LINQ и строки int count = stringQuery. Count(); WriteLine("Count = {0}", count);
LINQ и строки int count = stringQuery. Count(); WriteLine("Count = {0}", count);
Pic.53
LINQ и строки string text = @"Historically, the world of data and the world of objects" +
LINQ и строки string text = @"Historically, the world of data and the world of objects" + @" have not been well integrated. Programmers work in C# or Visual Basic" + @" and …
Pic.54
LINQ и строки Пример: подсчитать количество слов “data” в тексте.
LINQ и строки Пример: подсчитать количество слов “data” в тексте.
Pic.55
LINQ и строки var matchQuery = from word in source where word. ToLowerInvariant() == searchTerm. ToL
LINQ и строки var matchQuery = from word in source where word. ToLowerInvariant() == searchTerm. ToLowerInvariant() select word;
Pic.56
LINQ и строки int wordCount = matchQuery. Count(); WriteLine("{0} occurrences(s) of the search&
LINQ и строки int wordCount = matchQuery. Count(); WriteLine("{0} occurrences(s) of the search" + " term \"{1}\" were found. ", wordCount, searchTerm);
Pic.57
LINQ и строки Пример: найти в тексте строку с заданными словами. Distinct – возвращает не повторяющи
LINQ и строки Пример: найти в тексте строку с заданными словами. Distinct – возвращает не повторяющиеся элементы последовательности Intersect – вычисляет пересечение двух массивов
Pic.58
LINQ и строки string[] sentences = text. Split( new char[] { '. ', '?', '!&
LINQ и строки string[] sentences = text. Split( new char[] { '. ', '?', '!' } ); string[] wordsToMatch = { "Historically", "data", …
Pic.59
LINQ и строки var sentenceQuery = from sentence in sentences let w = sentence. Split( new char[] { &
LINQ и строки var sentenceQuery = from sentence in sentences let w = sentence. Split( new char[] { '. ','?','!',' ',';',':',',' …
Pic.60
LINQ и строки foreach (string str in sentenceQuery) { WriteLine(str); }
LINQ и строки foreach (string str in sentenceQuery) { WriteLine(str); }


Скачать презентацию

Если вам понравился сайт и размещенные на нем материалы, пожалуйста, не забывайте поделиться этой страничкой в социальных сетях и с друзьями! Спасибо!