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

Нажмите для полного просмотра!
Технология программировния. Строки, слайд №1Технология программировния. Строки, слайд №2Технология программировния. Строки, слайд №3Технология программировния. Строки, слайд №4Технология программировния. Строки, слайд №5Технология программировния. Строки, слайд №6Технология программировния. Строки, слайд №7Технология программировния. Строки, слайд №8Технология программировния. Строки, слайд №9Технология программировния. Строки, слайд №10Технология программировния. Строки, слайд №11Технология программировния. Строки, слайд №12Технология программировния. Строки, слайд №13Технология программировния. Строки, слайд №14Технология программировния. Строки, слайд №15Технология программировния. Строки, слайд №16Технология программировния. Строки, слайд №17Технология программировния. Строки, слайд №18Технология программировния. Строки, слайд №19Технология программировния. Строки, слайд №20Технология программировния. Строки, слайд №21Технология программировния. Строки, слайд №22Технология программировния. Строки, слайд №23Технология программировния. Строки, слайд №24Технология программировния. Строки, слайд №25Технология программировния. Строки, слайд №26Технология программировния. Строки, слайд №27Технология программировния. Строки, слайд №28Технология программировния. Строки, слайд №29Технология программировния. Строки, слайд №30Технология программировния. Строки, слайд №31Технология программировния. Строки, слайд №32Технология программировния. Строки, слайд №33Технология программировния. Строки, слайд №34Технология программировния. Строки, слайд №35Технология программировния. Строки, слайд №36Технология программировния. Строки, слайд №37Технология программировния. Строки, слайд №38Технология программировния. Строки, слайд №39Технология программировния. Строки, слайд №40Технология программировния. Строки, слайд №41Технология программировния. Строки, слайд №42Технология программировния. Строки, слайд №43Технология программировния. Строки, слайд №44Технология программировния. Строки, слайд №45Технология программировния. Строки, слайд №46Технология программировния. Строки, слайд №47Технология программировния. Строки, слайд №48Технология программировния. Строки, слайд №49Технология программировния. Строки, слайд №50Технология программировния. Строки, слайд №51Технология программировния. Строки, слайд №52Технология программировния. Строки, слайд №53Технология программировния. Строки, слайд №54Технология программировния. Строки, слайд №55Технология программировния. Строки, слайд №56Технология программировния. Строки, слайд №57Технология программировния. Строки, слайд №58Технология программировния. Строки, слайд №59Технология программировния. Строки, слайд №60

Содержание

Вы можете ознакомиться и скачать презентацию на тему Технология программировния. Строки. Доклад-сообщение содержит 60 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Технология программировния
Строки
Описание слайда:
Технология программировния Строки

Слайд 2





Работа с текстом
	В языке C# имеется много различных инструментов для работы с текстом
Встроенные типы данных – char и string
Классы из стандартной библиотеки – StringBuilder
Классы для работы с регулярными выражениями
Средства LINQ для строк
Описание слайда:
Работа с текстом В языке C# имеется много различных инструментов для работы с текстом Встроенные типы данных – char и string Классы из стандартной библиотеки – StringBuilder Классы для работы с регулярными выражениями Средства LINQ для строк

Слайд 3





Отдельные символы
	Фреймворк .NET содержит специальный класс для работы с отдельными символами – System.Char
Использует UTF-16 для хранения одной буквы, таким образом символ занимает 2 байта
В C# синонимом данного класса является встроенный тип char
Также в языке определены символьные константы, задающиеся
Символом, заключенным в одинарные кавычки
Управляющей последовательностью
Unicode-последовательностью
Описание слайда:
Отдельные символы Фреймворк .NET содержит специальный класс для работы с отдельными символами – System.Char Использует UTF-16 для хранения одной буквы, таким образом символ занимает 2 байта В C# синонимом данного класса является встроенный тип char Также в языке определены символьные константы, задающиеся Символом, заключенным в одинарные кавычки Управляющей последовательностью Unicode-последовательностью

Слайд 4





Отдельные символы
            char ch = 'A';
            WriteLine(ch);
            ch = '\x5A';
            WriteLine(ch);
            ch = '\u0058';
            WriteLine(ch);
Описание слайда:
Отдельные символы char ch = 'A'; WriteLine(ch); ch = '\x5A'; WriteLine(ch); ch = '\u0058'; WriteLine(ch);

Слайд 5





Отдельные символы
            char ch = new Char();
            ch = (char)65;
            WriteLine(ch);
            int code = ch;
            WriteLine(code);
            string s = ch.ToString() + " = " + code;
            WriteLine(s);
Описание слайда:
Отдельные символы char ch = new Char(); ch = (char)65; WriteLine(ch); int code = ch; WriteLine(code); string s = ch.ToString() + " = " + code; WriteLine(s);

Слайд 6





Отдельные символы
	Цифры и буквы алфавитов обычно кодируются интервалами:
0 - 9 соответствует интервал [65, 90]
A - Z соответствует интервал [65, 90]
a - z соответствует интервал [97, 122]
А - Я соответствует интервал [1040, 1071]
а - я соответствует интервал [1072, 1103]
Однако, буквам Ё и ё присвоены коды 1025 и 1105
Описание слайда:
Отдельные символы Цифры и буквы алфавитов обычно кодируются интервалами: 0 - 9 соответствует интервал [65, 90] A - Z соответствует интервал [65, 90] a - z соответствует интервал [97, 122] А - Я соответствует интервал [1040, 1071] а - я соответствует интервал [1072, 1103] Однако, буквам Ё и ё присвоены коды 1025 и 1105

Слайд 7





Отдельные символы
	Класс char содержит достаточно много собственных методов. Большая часть из них используется для определения типа символа.
IsDigit – проверка на десятичную цифру
IsLetter – проверка на букву
IsPunctuation – проверка на знак препинания
IsWhiteSpace – проверка на пробелы, включая перевод строки и возврат каретки
Описание слайда:
Отдельные символы Класс char содержит достаточно много собственных методов. Большая часть из них используется для определения типа символа. IsDigit – проверка на десятичную цифру IsLetter – проверка на букву IsPunctuation – проверка на знак препинания IsWhiteSpace – проверка на пробелы, включая перевод строки и возврат каретки

Слайд 8





Отдельные символы
	В общем случае тип символа можно получить при помощи метода GetUnicodeCategory. Он возвращает одну из категорий, описанных в перечислении UnicodeCategory из пространства имен System.Globalization.
Описание слайда:
Отдельные символы В общем случае тип символа можно получить при помощи метода GetUnicodeCategory. Он возвращает одну из категорий, описанных в перечислении UnicodeCategory из пространства имен System.Globalization.

Слайд 9





Отдельные символы
            WriteLine("GetUnicodeCategory:");
            var c1 = char.GetUnicodeCategory('A');
            var c2 = char.GetUnicodeCategory(';');
            WriteLine("'A' - category {0}", c1);
            WriteLine("';' - category {0}", c2);
Описание слайда:
Отдельные символы WriteLine("GetUnicodeCategory:"); var c1 = char.GetUnicodeCategory('A'); var c2 = char.GetUnicodeCategory(';'); WriteLine("'A' - category {0}", c1); WriteLine("';' - category {0}", c2);

Слайд 10





Отдельные символы
Описание слайда:
Отдельные символы

Слайд 11





Отдельные символы
            WriteLine("Метод IsLetter:");
            WriteLine("'z' - IsLetter - {0}",
                      char.IsLetter('z'));
            WriteLine("'Я' - IsLetter - {0}",
                      char.IsLetter('Я'));

            WriteLine("Метод IsControl:");
            WriteLine("';' - IsControl - {0}",
                      char.IsControl(';'));
            WriteLine(@"'\r' - IsControl - {0}",
                      char.IsControl('\r'));
Описание слайда:
Отдельные символы WriteLine("Метод IsLetter:"); WriteLine("'z' - IsLetter - {0}", char.IsLetter('z')); WriteLine("'Я' - IsLetter - {0}", char.IsLetter('Я')); WriteLine("Метод IsControl:"); WriteLine("';' - IsControl - {0}", char.IsControl(';')); WriteLine(@"'\r' - IsControl - {0}", char.IsControl('\r'));

Слайд 12





Отдельные символы
            WriteLine("Метод IsSeparator:");
            WriteLine("' ' - IsSeparator - {0}",
                      char.IsSeparator(' '));
            WriteLine("';' - IsSeparator - {0}",
                      char.IsSeparator(';'));

            WriteLine("Метод IsWhiteSpace:");
            WriteLine("' ' - IsWhiteSpace - {0}",
                      char.IsWhiteSpace(' '));
            WriteLine(@"'\r' - IsWhiteSpace - {0}",
                      char.IsWhiteSpace('\r'));
Описание слайда:
Отдельные символы WriteLine("Метод IsSeparator:"); WriteLine("' ' - IsSeparator - {0}", char.IsSeparator(' ')); WriteLine("';' - IsSeparator - {0}", char.IsSeparator(';')); WriteLine("Метод IsWhiteSpace:"); WriteLine("' ' - IsWhiteSpace - {0}", char.IsWhiteSpace(' ')); WriteLine(@"'\r' - IsWhiteSpace - {0}", char.IsWhiteSpace('\r'));

Слайд 13





Отдельные символы
ToLower – приводит символ к нижнему регистру
ToUpper – приводит символ к верхнему регистру
CompareTo – сравнивает два символа и возвращает разницу между их кодами
Описание слайда:
Отдельные символы ToLower – приводит символ к нижнему регистру ToUpper – приводит символ к верхнему регистру CompareTo – сравнивает два символа и возвращает разницу между их кодами

Слайд 14





Массив символов
	По аналогии с языками С и С++ мы можем представить строку в виде массива символов. Особого смысла это не имеет, т.к. у нас уже есть тип string, но может быть полезно для понимания внутреннего устройства различных классов по обработке текста. Над массивом символов сразу можно выполнять все операции с массивами: Copy, IndexOf, LastIndexOf и т.д.
Описание слайда:
Массив символов По аналогии с языками С и С++ мы можем представить строку в виде массива символов. Особого смысла это не имеет, т.к. у нас уже есть тип string, но может быть полезно для понимания внутреннего устройства различных классов по обработке текста. Над массивом символов сразу можно выполнять все операции с массивами: Copy, IndexOf, LastIndexOf и т.д.

Слайд 15





Массив символов
            char[] text = new [] {'H','e','l','l','o'};
            for (int i = 0; i < text.Length; ++i) {
                if (char.IsLower(text[i])) {
                    text[i] = char.ToUpper(text[i]);
                } else {
                    text[i] = char.ToLower(text[i]);
                }
            }
            foreach (var ch in text) {
                Write(ch);
            }
            WriteLine();
Описание слайда:
Массив символов char[] text = new [] {'H','e','l','l','o'}; for (int i = 0; i < text.Length; ++i) { if (char.IsLower(text[i])) { text[i] = char.ToUpper(text[i]); } else { text[i] = char.ToLower(text[i]); } } foreach (var ch in text) { Write(ch); } WriteLine();

Слайд 16





Массив символов
	Стандартный класс string внутри представлен в виде массива символов. Поэтому у него есть стандартный метод для его получения – ToCharArray
Описание слайда:
Массив символов Стандартный класс string внутри представлен в виде массива символов. Поэтому у него есть стандартный метод для его получения – ToCharArray

Слайд 17





Массив символов
        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.Length ||
                          text1[i + j] != text2[j]) {
                      isFound = false;
                      break;
                  }
              }
              if (isFound) { return i; }
          } return -1; }
Описание слайда:
Массив символов 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.Length || text1[i + j] != text2[j]) { isFound = false; break; } } if (isFound) { return i; } } return -1; }

Слайд 18





Массив символов
            char[] text1 = "Progress".ToCharArray();
            char[] text2 = "ogre".ToCharArray();
            int index = IndexOf(text1, text2);
            if (index >= 0) {
                for (int i = 0; i < text1.Length; ++i) {
                    if (i == index ||
                        i == index + text2.Length) {
                        Write("|");
                    }
                    Write(text1[i]);
                }
            } else { WriteLine("Не найдено"); }
Описание слайда:
Массив символов char[] text1 = "Progress".ToCharArray(); char[] text2 = "ogre".ToCharArray(); int index = IndexOf(text1, text2); if (index >= 0) { for (int i = 0; i < text1.Length; ++i) { if (i == index || i == index + text2.Length) { Write("|"); } Write(text1[i]); } } else { WriteLine("Не найдено"); }

Слайд 19





Строки string
	Строки можно создавать при помощи строковых констант или конструктора string. Конструктор имеет много вариантов, но наиболее полезными являются:
Создание строки из символа, повторенного заданное число раз
Создание строки из массива символов char[]
Создание строки из части массива символов
Описание слайда:
Строки string Строки можно создавать при помощи строковых констант или конструктора string. Конструктор имеет много вариантов, но наиболее полезными являются: Создание строки из символа, повторенного заданное число раз Создание строки из массива символов char[] Создание строки из части массива символов

Слайд 20





Строки string
            string hello = "Hello";
            string separator = new string('-', 5);
            char[] array = hello.ToCharArray();
            string fromArray = new string(array);
            string strye = new string(array, 1, 3);

            WriteLine(hello);
            WriteLine(separator);
            WriteLine(fromArray);
            WriteLine(strye);
Описание слайда:
Строки string string hello = "Hello"; string separator = new string('-', 5); char[] array = hello.ToCharArray(); string fromArray = new string(array); string strye = new string(array, 1, 3); WriteLine(hello); WriteLine(separator); WriteLine(fromArray); WriteLine(strye);

Слайд 21





Строки string
	В C# существуют два вида строковых констант:
Обычные константы, которые представляют строку символов, заключенную в кавычки
Константы с предшествующим знаком @.
Описание слайда:
Строки string В C# существуют два вида строковых констант: Обычные константы, которые представляют строку символов, заключенную в кавычки Константы с предшествующим знаком @.

Слайд 22





Строки string
Обычные строковые константы могут содержать управляющие последовательности - \n, \t, \r и т.д.
В @-константах все символы трактуются в полном соответствии с их изображением. Символ кавычки внутри строки задается при помощи удвоения символа
Описание слайда:
Строки string Обычные строковые константы могут содержать управляющие последовательности - \n, \t, \r и т.д. В @-константах все символы трактуются в полном соответствии с их изображением. Символ кавычки внутри строки задается при помощи удвоения символа

Слайд 23





Строки string
            WriteLine("\x50");
            WriteLine(@"\x50""");
            WriteLine("c:\\folder\\folder\\file.txt");
            WriteLine(@"c:\folder\folder\file.txt");
            WriteLine("\"A\"");
            WriteLine(@"""A""");
Описание слайда:
Строки string WriteLine("\x50"); WriteLine(@"\x50"""); WriteLine("c:\\folder\\folder\\file.txt"); WriteLine(@"c:\folder\folder\file.txt"); WriteLine("\"A\""); WriteLine(@"""A""");

Слайд 24





Строки string
	Над строками определены следующие операции:
Присваивание =
Строки являются ссылочным типом. Если есть две строки s1 и s2, то в результате выполнения выражения s2 = s1 произойдет копирование ссылок на текст, а не самого текста
Проверка эквивалентности == и !=
Конкатенация или сцепление строк +
Взятие индекса [ ]
Индексы доступны только для чтения
Описание слайда:
Строки string Над строками определены следующие операции: Присваивание = Строки являются ссылочным типом. Если есть две строки s1 и s2, то в результате выполнения выражения s2 = s1 произойдет копирование ссылок на текст, а не самого текста Проверка эквивалентности == и != Конкатенация или сцепление строк + Взятие индекса [ ] Индексы доступны только для чтения

Слайд 25





Строки string
            string s1 = "ABC", s2 = "DEF";
            string s3 = s1 + s2;
            string s4 = "ABCDEF";
            WriteLine(s3);
            WriteLine("s3 == s4 ? {0}", s3 == s4);
            WriteLine("s1[2] = {0}", s1[2]);
Описание слайда:
Строки string string s1 = "ABC", s2 = "DEF"; string s3 = s1 + s2; string s4 = "ABCDEF"; WriteLine(s3); WriteLine("s3 == s4 ? {0}", s3 == s4); WriteLine("s1[2] = {0}", s1[2]);

Слайд 26





Методы класса string
Compare – cравнение двух строк. Различные варианты метода позволяют сравнивать как строки, так и подстроки. При этом можно учитывать или не учитывать регистр, особенности национального форматирования дат, чисел и т.д.
CompareOrdinal – сравнение двух строк. Сравниваются коды символов
Описание слайда:
Методы класса string Compare – cравнение двух строк. Различные варианты метода позволяют сравнивать как строки, так и подстроки. При этом можно учитывать или не учитывать регистр, особенности национального форматирования дат, чисел и т.д. CompareOrdinal – сравнение двух строк. Сравниваются коды символов

Слайд 27





Методы класса string
Concat – конкатенация  строк. Допускает сцепление произвольного числа строк
Copy – создается копия строки
Format – выполняет форматирование в соответствии с заданными спецификациями формата (используется в методе WriteLine, см. первую лекцию)
Описание слайда:
Методы класса string Concat – конкатенация строк. Допускает сцепление произвольного числа строк Copy – создается копия строки Format – выполняет форматирование в соответствии с заданными спецификациями формата (используется в методе WriteLine, см. первую лекцию)

Слайд 28





Методы класса string
Join – конкатенация массива строк в единую строку. При этом между элементами массива вставляются разделители
Split – осуществляет разделение строки на элементы
Описание слайда:
Методы класса string Join – конкатенация массива строк в единую строку. При этом между элементами массива вставляются разделители Split – осуществляет разделение строки на элементы

Слайд 29





Методы класса string
            var txt = "А это пшеница, которая в темном" +
                      "чулане хранится," +
                      " в доме, который построил Джек!";
            WriteLine(txt);
Описание слайда:
Методы класса string var txt = "А это пшеница, которая в темном" + "чулане хранится," + " в доме, который построил Джек!"; WriteLine(txt);

Слайд 30





Методы класса string
            string[] sentences = txt.Split(',');
            for (int i = 0; i < sentences.Length; i++) {
                WriteLine("sentences[{0}] = {1}",
                          i, sentences[i]);
            }
            WriteLine();
Описание слайда:
Методы класса string string[] sentences = txt.Split(','); for (int i = 0; i < sentences.Length; i++) { WriteLine("sentences[{0}] = {1}", i, sentences[i]); } WriteLine();

Слайд 31





Методы класса string
string join = string.Join(",", sentences);
WriteLine("join = {0}", join);
WriteLine();
Описание слайда:
Методы класса string string join = string.Join(",", sentences); WriteLine("join = {0}", join); WriteLine();

Слайд 32





Методы класса string
            WriteLine();
            string[] words = txt.Split(' ');
            for (int i = 0; i < words.Length; i++) {
                WriteLine("words[{0}] = {1}",
                          i, words[i]);
            }
            WriteLine();
Описание слайда:
Методы класса string WriteLine(); string[] words = txt.Split(' '); for (int i = 0; i < words.Length; i++) { WriteLine("words[{0}] = {1}", i, words[i]); } WriteLine();

Слайд 33





Методы класса string
            join = string.Join(" ", words);
            WriteLine("join = {0}", join);
            WriteLine();
Описание слайда:
Методы класса string join = string.Join(" ", words); WriteLine("join = {0}", join); WriteLine();

Слайд 34





Методы класса string
	Методы Split и Join хорошо работают, когда при разборе используется только один разделитель. В этом случае сборка действительно является обратной операцией и позволяет восстановить исходную строку. Если же при разборе задается некоторое множество разделителей, то возникают две проблемы:
Невозможно при сборке восстановить строку в прежнем виде, поскольку не сохраняется информация о том, какой из разделителей был использован при разборе строки
Если при разборе предложения на слова использовать в качестве разделителей пробел и запятую, то запятая исчезнет как часть слова, но взамен появятся пустые слова
Описание слайда:
Методы класса string Методы Split и Join хорошо работают, когда при разборе используется только один разделитель. В этом случае сборка действительно является обратной операцией и позволяет восстановить исходную строку. Если же при разборе задается некоторое множество разделителей, то возникают две проблемы: Невозможно при сборке восстановить строку в прежнем виде, поскольку не сохраняется информация о том, какой из разделителей был использован при разборе строки Если при разборе предложения на слова использовать в качестве разделителей пробел и запятую, то запятая исчезнет как часть слова, но взамен появятся пустые слова

Слайд 35





Методы класса string
Insert – вставляет  подстроку в заданную позицию
Remove – удаляет подстроку в заданной позиции
Replace – заменяет подстроку в заданной позиции на новую подстроку
Substring – выделяет подстроку в заданной позиции
Описание слайда:
Методы класса string Insert – вставляет подстроку в заданную позицию Remove – удаляет подстроку в заданной позиции Replace – заменяет подстроку в заданной позиции на новую подстроку Substring – выделяет подстроку в заданной позиции

Слайд 36





Методы класса string
IndexOf, IndexOfAny, LastIndexOf, LastIndexOfAny – определяются индексы первого и последнего вхождения заданной подстроки или любого символа из заданного набора
StartsWith, EndsWith – возвращается true или false, в зависимости от того, начинается или заканчивается строка заданной подстрокой
PadLeft, PadRight – вставляют нужное число пробелов в начале или в конце строки
Trim, TrimStart, TrimEnd – удаляются пробелы в начале или в конце строки
Описание слайда:
Методы класса string IndexOf, IndexOfAny, LastIndexOf, LastIndexOfAny – определяются индексы первого и последнего вхождения заданной подстроки или любого символа из заданного набора StartsWith, EndsWith – возвращается true или false, в зависимости от того, начинается или заканчивается строка заданной подстрокой PadLeft, PadRight – вставляют нужное число пробелов в начале или в конце строки Trim, TrimStart, TrimEnd – удаляются пробелы в начале или в конце строки

Слайд 37





Класс StringBuilder
	В языке C# существует понятие неизменяемый (immutable) класс. Для такого класса невозможно изменить значение объекта. Методы могут создавать новый объект на основе существующего, но не могут изменить значение существующего объекта.
Описание слайда:
Класс StringBuilder В языке C# существует понятие неизменяемый (immutable) класс. Для такого класса невозможно изменить значение объекта. Методы могут создавать новый объект на основе существующего, но не могут изменить значение существующего объекта.

Слайд 38





Класс StringBuilder
	К таким неизменяемым классам относится и класс string. Ни один из методов этого класса не меняет значения существующих объектов. Когда метод изменяет строку, результатом является новая строка - новый объект в куче. 
	При работе со строкой как с массивом разрешено только чтение отдельных символов, но не их замена.
Описание слайда:
Класс StringBuilder К таким неизменяемым классам относится и класс string. Ни один из методов этого класса не меняет значения существующих объектов. Когда метод изменяет строку, результатом является новая строка - новый объект в куче. При работе со строкой как с массивом разрешено только чтение отдельных символов, но не их замена.

Слайд 39





Класс StringBuilder
	Класс StringBuilder позволяет компенсировать этот недостаток. Этот класс принадлежит к изменяемым классам, и его можно найти в пространстве имен System.Text
Описание слайда:
Класс StringBuilder Класс StringBuilder позволяет компенсировать этот недостаток. Этот класс принадлежит к изменяемым классам, и его можно найти в пространстве имен System.Text

Слайд 40





Класс StringBuilder
	Специальных констант этого типа не существует, поэтому объекты этого класса объявляются с явным вызовом конструктора класса.
StringBuilder(string str, int cap)
str - начальная строка
cap - емкость объекта
StringBuilder(int cur, int max)
cur – начальная, max – максимальная емкость объекта
Описание слайда:
Класс StringBuilder Специальных констант этого типа не существует, поэтому объекты этого класса объявляются с явным вызовом конструктора класса. StringBuilder(string str, int cap) str - начальная строка cap - емкость объекта StringBuilder(int cur, int max) cur – начальная, max – максимальная емкость объекта

Слайд 41





Класс StringBuilder
StringBuilder(string str, int start, int len, int cap)
Параметры str, start, len задают строку инициализации, cap - емкость объекта
Описание слайда:
Класс StringBuilder StringBuilder(string str, int start, int len, int cap) Параметры str, start, len задают строку инициализации, cap - емкость объекта

Слайд 42





Класс 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);
Описание слайда:
Класс 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);

Слайд 43





Класс StringBuilder
	Операция конкатенации (+) не определена над строками класса StringBuilder, ее роль играет метод Append, дописывающий новую строку в хвост уже существующей
Описание слайда:
Класс StringBuilder Операция конкатенации (+) не определена над строками класса StringBuilder, ее роль играет метод Append, дописывающий новую строку в хвост уже существующей

Слайд 44





Класс StringBuilder
            var s1 = new StringBuilder("ABC");
            var s2 = new StringBuilder("DEF");

            var s3 = s1;
            s3.Append(s2);
            WriteLine(s3);
Описание слайда:
Класс StringBuilder var s1 = new StringBuilder("ABC"); var s2 = new StringBuilder("DEF"); var s3 = s1; s3.Append(s2); WriteLine(s3);

Слайд 45





Класс StringBuilder
            var s4 = new StringBuilder("Zenon");
            WriteLine(s4);
            s4[0] = 'L';
            WriteLine(s4);
Описание слайда:
Класс StringBuilder var s4 = new StringBuilder("Zenon"); WriteLine(s4); s4[0] = 'L'; WriteLine(s4);

Слайд 46





Класс StringBuilder
Capacity - возвращает или устанавливает текущую емкость буфера
MaxCapacity - возвращает максимальную емкость буфера. Результат один и тот же для всех экземпляров класса
int EnsureCapacity(int capacity) - если текущая емкость меньше, то она увеличивается до значения capacity, иначе не изменяется. Максимум текущей емкости и capacity возвращается в качестве результата работы метода.
Описание слайда:
Класс StringBuilder Capacity - возвращает или устанавливает текущую емкость буфера MaxCapacity - возвращает максимальную емкость буфера. Результат один и тот же для всех экземпляров класса int EnsureCapacity(int capacity) - если текущая емкость меньше, то она увеличивается до значения capacity, иначе не изменяется. Максимум текущей емкости и capacity возвращается в качестве результата работы метода.

Слайд 47





Класс StringBuilder
            var s1 = new StringBuilder(10, 100);
            WriteLine("s1: capacity = {0}, max = {1}",
                       s1.Capacity, s1.MaxCapacity);

            s1.Append("123");

            WriteLine("s1: capacity = {0}, max = {1}",
                       s1.Capacity, s1.MaxCapacity);
Описание слайда:
Класс StringBuilder var s1 = new StringBuilder(10, 100); WriteLine("s1: capacity = {0}, max = {1}", s1.Capacity, s1.MaxCapacity); s1.Append("123"); WriteLine("s1: capacity = {0}, max = {1}", s1.Capacity, s1.MaxCapacity);

Слайд 48





Класс StringBuilder
            var s2 = new StringBuilder("Hello");
            WriteLine("s2: capacity = {0}, max = {1}",
                       s2.Capacity, s2.MaxCapacity);

            s2.EnsureCapacity(20);

            WriteLine("s2: capacity = {0}, max = {1}",
                       s2.Capacity, s2.MaxCapacity);
Описание слайда:
Класс StringBuilder var s2 = new StringBuilder("Hello"); WriteLine("s2: capacity = {0}, max = {1}", s2.Capacity, s2.MaxCapacity); s2.EnsureCapacity(20); WriteLine("s2: capacity = {0}, max = {1}", s2.Capacity, s2.MaxCapacity);

Слайд 49





Класс StringBuilder
            for (int i = 0; i < 1000; ++i) {
                s1.Append("4");
            }
Описание слайда:
Класс StringBuilder for (int i = 0; i < 1000; ++i) { s1.Append("4"); }

Слайд 50





LINQ и строки
	Библиотека LINQ также может быть использована для обработки текста. 
	Это достигается за счет того, что строка текста может быть представлена в виде массива, что и позволяет использовать любые запросы по их обработке.
Описание слайда:
LINQ и строки Библиотека LINQ также может быть использована для обработки текста. Это достигается за счет того, что строка текста может быть представлена в виде массива, что и позволяет использовать любые запросы по их обработке.

Слайд 51





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 + " ");
            }
Описание слайда:
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 + " "); }

Слайд 52





LINQ и строки
            int count = stringQuery.Count();
            WriteLine("Count = {0}", count);
Описание слайда:
LINQ и строки int count = stringQuery.Count(); WriteLine("Count = {0}", count);

Слайд 53





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 also in SQL or XQuery. On the one side are concepts such as classes,"
 + @" objects, fields, inheritance, and .NET Framework APIs. On the other side"
 + @" are tables, columns, rows, nodes, and separate languages for dealing with"
 + @" them. Data types often require translation between the two worlds; there are"
 + @" different standard functions. Because the object world has no notion of query, a"
 + @" query can only be represented as a string without compile-time type checking or"
 + @" IntelliSense support in the IDE. Transferring data from SQL tables or XML trees to"
 + @" objects in memory is often tedious and error-prone.";
Описание слайда:
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 also in SQL or XQuery. On the one side are concepts such as classes," + @" objects, fields, inheritance, and .NET Framework APIs. On the other side" + @" are tables, columns, rows, nodes, and separate languages for dealing with" + @" them. Data types often require translation between the two worlds; there are" + @" different standard functions. Because the object world has no notion of query, a" + @" query can only be represented as a string without compile-time type checking or" + @" IntelliSense support in the IDE. Transferring data from SQL tables or XML trees to" + @" objects in memory is often tedious and error-prone.";

Слайд 54





LINQ и строки
	Пример: подсчитать количество слов “data” в тексте.
Описание слайда:
LINQ и строки Пример: подсчитать количество слов “data” в тексте.

Слайд 55





LINQ и строки
            var matchQuery =
                from word in source
                where word.ToLowerInvariant() == 
                      searchTerm.ToLowerInvariant()
                select word;
Описание слайда:
LINQ и строки var matchQuery = from word in source where word.ToLowerInvariant() == searchTerm.ToLowerInvariant() select word;

Слайд 56





LINQ и строки
            int wordCount = matchQuery.Count();
            WriteLine("{0} occurrences(s) of the search" +
                      " term \"{1}\" were found.",
                      wordCount, searchTerm);
Описание слайда:
LINQ и строки int wordCount = matchQuery.Count(); WriteLine("{0} occurrences(s) of the search" + " term \"{1}\" were found.", wordCount, searchTerm);

Слайд 57





LINQ и строки
	Пример: найти в тексте строку с заданными словами.
Distinct – возвращает не повторяющиеся элементы последовательности
Intersect – вычисляет пересечение двух массивов
Описание слайда:
LINQ и строки Пример: найти в тексте строку с заданными словами. Distinct – возвращает не повторяющиеся элементы последовательности Intersect – вычисляет пересечение двух массивов

Слайд 58





LINQ и строки
            string[] sentences = text.Split(
                new char[] { '.', '?', '!' }
            );

            string[] wordsToMatch = {
                "Historically", "data", "integrated"
            };
Описание слайда:
LINQ и строки string[] sentences = text.Split( new char[] { '.', '?', '!' } ); string[] wordsToMatch = { "Historically", "data", "integrated" };

Слайд 59





LINQ и строки
            var sentenceQuery =
                from sentence in sentences
                let w = sentence.Split(
                    new char[] {
                        '.','?','!',' ',';',':',','
                    },
                    StringSplitOptions.RemoveEmptyEntries)
                where w.Distinct()
                       .Intersect(wordsToMatch)
                       .Count() == wordsToMatch.Count()
                select sentence;
Описание слайда:
LINQ и строки var sentenceQuery = from sentence in sentences let w = sentence.Split( new char[] { '.','?','!',' ',';',':',',' }, StringSplitOptions.RemoveEmptyEntries) where w.Distinct() .Intersect(wordsToMatch) .Count() == wordsToMatch.Count() select sentence;

Слайд 60





LINQ и строки
            foreach (string str in sentenceQuery) {
                WriteLine(str);
            }
Описание слайда:
LINQ и строки foreach (string str in sentenceQuery) { WriteLine(str); }



Похожие презентации
Mypresentation.ru
Загрузить презентацию