Строки и класс System.String
1
 Строка является ссылочным типом;
 Строка является неизменяемой
 Строка может содержать значение null
2
Создание строк
3
4
Операции для строк
 присваивание (=);
 проверка на равенство (==);
 проверка на неравенство (!=);
 обращение по индексу ([]);
 сцепление (конкатенация) строк (+).
Основные методы строк
5
Сравнение строк
6
Compare/CompareOrdinal
Статический метод, сравнивает строку strA со
строкой strB возвращает:
 Больше нуля, если строка strA больше строки
strB;
 Меньше нуля, если строка strA меньше строки
strB;
 Нуль, если строки strA и strB равны.
Делает то же, что и метод Compare(), но без учета
локальных установок
7
CompareTo
Сравнивает данный экземпляр с заданным
объектом String
 Больше нуля, если строка strA больше строки
strB;
 Меньше нуля, если строка strA меньше строки
strB;
 Нуль, если строки strA и strB равны.
8
Конкатенация (соединение) строк
9
Concat
Комбинирует отдельные экземпляры строк в одну
строку (конкатенация).
StartsWith/EndsWith
 Возвращает логическое значение true, если
вызывающая строка начинается с подстроки
value. В противном случае возвращается false.
 Возвращает логическое значение true, если
вызывающая строка оканчивается подстрокой
value. В противном случае возвращает false.
10
Contains
Метод, который позволяет определить, содержится
ли в строке определенная подстрока.
Поиск в строке
IndexOf/LastIndexOf
 Находит первое вхождение заданной подстроки
или символа в строке. Если искомый символ или
подстрока не обнаружены, то возвращается
значение -1.
 То же, что IndexOf, но находит последнее
вхождение символа или подстроки, а не первое
11
Split
Метод, возвращающий массив string с
присутствующими в данном экземпляре
подстроками внутри, которые отделяются друг от
друга элементами из указанного массива char или
string
12
Join
Строит новую строку, комбинируя содержимое
массива строк
Разделение и соединение строк
Заполнение и обрезка строк
13
Trim
 Метод, который позволяет удалять все
вхождения определенного набора символов с
начала и конца текущей строки.
Insert/Remove/Replace
 Используется для вставки одной строки в
другую, где value обозначает строку,
вставляемую в вызывающую строку по индексу
 Используется для удаления части строки.
 Используется для замены части строки.
14
Вставка, удаление и замена строк
ToUpper/ToLower
 Делает заглавными все буквы в вызывающей
строке.
 Делает строчными все буквы в вызывающей
строке
15
Смена регистра
Substring
 В первой форме метода Substring() подстрока
извлекается, начиная с места, обозначаемого
параметром startIndex, и до конца вызывающей
строки.
 А во второй форме данного метода извлекается
подстрока, состоящая из количества символов,
определяемых параметром length, начиная с
места, обозначаемого параметром startIndex.
16
Получение подстроки из строки
17
Спецификаторы формата для строк
C или c Вывод значений в денежном (currency) формате.
D или d Вывод целых значений.
E или e Вывод значений в экспоненциальном формате, то есть в виде
d.ddd…E+ddd или d.ddd…e+ddd.
F или f Вывод значений с фиксированной точностью.
G или g Формат общего вида. Вывод значений с фиксированной
точностью или в экспоненциальном формате, в зависимости
от того, какой формат требует меньшего количества позиций.
N или n Вывод значений в формате d,ddd,ddd.ddd. После
спецификации можно задать целое число, определяющее
длину дробной части
P или p Вывод числа в процентном формате
R или r Отмена округления числа при преобразовании в строку.
Гарантирует, что при обратном преобразовании в значение
того же типа получится то же самое
X или x Вывод значений в шестнадцатеричном формате.
Специальный символ Формат Описание
c/C Денежная единица
Указывает количество
десятичных знаков
d/D Целые числа
Указывает минимальное
количество цифр. При
необходимости
добавляются нули
e/E
Экспоненциальные
числа
Указывает количество
десятичных знаков
f/F
Числа с фиксированной
точкой
Указывает количество
десятичных знаков
g/G Форматы e/E и g/G
Использует более
короткий формат из
двух: f/F и g/G
n/N
Числа с фиксированной
точкой с отделением
групп разрядов
Указывает количество
десятичных знаков
p/P Проценты
Умножает число на 100
и выводит со знаком
процентов. Указывает
количество десятичных
знаков
r/R
Формат кругового
преобразования. Только
фиксированная точка
Форматирует число в
строку таким образом,
что его можно обратно
преобразовать без
потерь точности
x/X
Шестнадцатеричные
числа
Указывает минимальное
количество цифр. При
необходимости
добавляются нули
18
19
Специальный символ Значение
0 Цифра или ноль
# Цифра
. Разделитель дроби
, Разделитель тысяч
% Процент
e Экспонента
;
Определяет разделы, которые
описывают форматы для
положительных, отрицательных
чисел и нуля

Экранирование специальных
символов. Позволяет вставлять
спец-символы как текст
20
Console.WriteLine("{0:0000.00}", 1024.32); // "1024,32"
Console.WriteLine("{0:00000.000}", 1024.32); // "01024,320"
Console.WriteLine("{0:####.###}", 1024.32); // "1024,32"
Console.WriteLine("{0:####.#}", 1024.32); // "1024,3"
Console.WriteLine("{0:#,###.##}", 1024.32); // "1 024,32"
Console.WriteLine("{0:##%}", 0.32); // "32%"
Console.WriteLine("{0:<####.###>;[####.###];ноль}",
1024.32); // "<1024,32>"
Console.WriteLine("{0:<####.###>;[####.###];ноль}", -
1024.32); // "[1024,32]"
Console.WriteLine("{0:<####.###>;[####.###];ноль}", 0);
// "ноль"
 0:00000 - 00123
 0:0.00 - 1.20
 0:00.00 - 01.20
 1.2 - 0:#.## - 1.2
 123 - 0:##### - 123
 123456 - 0:[##-##-##] - [12-34-56]
 1234567890 - 0:# - 1234567890
0:(###) ###-####} - (123) 456-7890
1234567890 - 0:#,# 1,234,567,890
 0:#,##0,, - 1,235
 0:dddd MMMM -
21
Специальный символ Формат Пример
d Короткая дата 30.06.2014
D Длинная дата 30 июня 2014 г.
t Короткое время 22:30
T Длинное время 22:30:10
f
Длинная дата/короткое
время
30 июня 2014 г. 22:30
F
Длинная дата/длинное
время
30 июня 2014 г.
22:30:10
g
Короткая дата/короткое
время
30.06.2014 22:30
G
Короткая дата/длинное
время
30.06.2014 22:30:10
M/m Месяц и день июня 30
O/o Обратный
2014-06-
30T22:30:10.0000000
R/r RFC1123
Mon, 30 Jun 2014
22:30:10 GMT
s Для сортировки 2014-06-30T22:30:10
u
Локальное, в
универсальном формате
2014-06-30 22:30:10Z
U GMT
30 июня 2014 г.
19:30:10
Y Год и месяц Июнь 2014
22
 Console.WriteLine("{0:d}", DateTime.Now); //
"30.06.2014"
 Console.WriteLine("{0:D}", DateTime.Now); // "30
июня 2014 р."
 Console.WriteLine("{0:t}", DateTime.Now); //
"2:57"
 Console.WriteLine("{0:T}", DateTime.Now); //
"2:57:53"
 Console.WriteLine("{0:U}", DateTime.Now); // "29
июня 2014 р. 23:57:53"
 Console.WriteLine("{0:Y}", DateTime.Now); //
"Июнь 2014 р."
23
©Павловская Т.А. (НИУ ИТМО) 24
Примеры пользовательских шаблонов
Число Шаблон Представление
числа
1,243 00.00 01,24
1,243 #.## 1,24
0,1 00.00 00,10
0,1 #.## ,1
Строки типа StringBuilder
25
26
При создании экземпляра обязательно использовать
операцию new и конструктор, например:
 StringBuilder sb = new StringBuilder("Привет мир");
Класс StringBuilder имеет два главных
свойства
Console.WriteLine("Длина строки: {0}", sb.Length);
Console.WriteLine("Емкость строки:{0}",sb.Capacity);
Методы класса StringBuilder
27
Append
 Добавляет строку к текущей строке
28
AppendFormat
 Добавляет строку, сформированную в
соответствии со спецификатором формата
Insert
 Вставляет подстроку в строку
Remove
 Удаляет символ из текущей строки
29
Replace
 Заменяет все вхождения символа другим
символом или вхождения подстроки другой
подстрокой
ToString
 Возвращает текущую строку в виде объекта
System.String
Когда надо использовать класс String,
а когда StringBulder?
30
класс String в следующих случаях
31
 При небольшом количестве операций и
изменений над строками
 При выполнении фиксированного количества
операций объединения. В этом случае
компилятор может объединить все операции
объединения в одну
 Когда надо выполнять масштабные операции
поиска при построении строки, например
IndexOf. Класс StringBuilder не имеет подобных
методов
класс StringBuilder в следующих случаях
32
 При неизвестном количестве операций и
изменений над строками во время выполнения
программы
 Когда предполагается, что приложению придется
сделать множество подобных операций

модуль 03 строки

  • 1.
  • 2.
     Строка являетсяссылочным типом;  Строка является неизменяемой  Строка может содержать значение null 2
  • 3.
  • 4.
    4 Операции для строк присваивание (=);  проверка на равенство (==);  проверка на неравенство (!=);  обращение по индексу ([]);  сцепление (конкатенация) строк (+).
  • 5.
  • 6.
  • 7.
    Compare/CompareOrdinal Статический метод, сравниваетстроку strA со строкой strB возвращает:  Больше нуля, если строка strA больше строки strB;  Меньше нуля, если строка strA меньше строки strB;  Нуль, если строки strA и strB равны. Делает то же, что и метод Compare(), но без учета локальных установок 7
  • 8.
    CompareTo Сравнивает данный экземплярс заданным объектом String  Больше нуля, если строка strA больше строки strB;  Меньше нуля, если строка strA меньше строки strB;  Нуль, если строки strA и strB равны. 8
  • 9.
    Конкатенация (соединение) строк 9 Concat Комбинируетотдельные экземпляры строк в одну строку (конкатенация).
  • 10.
    StartsWith/EndsWith  Возвращает логическоезначение true, если вызывающая строка начинается с подстроки value. В противном случае возвращается false.  Возвращает логическое значение true, если вызывающая строка оканчивается подстрокой value. В противном случае возвращает false. 10 Contains Метод, который позволяет определить, содержится ли в строке определенная подстрока. Поиск в строке
  • 11.
    IndexOf/LastIndexOf  Находит первоевхождение заданной подстроки или символа в строке. Если искомый символ или подстрока не обнаружены, то возвращается значение -1.  То же, что IndexOf, но находит последнее вхождение символа или подстроки, а не первое 11
  • 12.
    Split Метод, возвращающий массивstring с присутствующими в данном экземпляре подстроками внутри, которые отделяются друг от друга элементами из указанного массива char или string 12 Join Строит новую строку, комбинируя содержимое массива строк Разделение и соединение строк
  • 13.
    Заполнение и обрезкастрок 13 Trim  Метод, который позволяет удалять все вхождения определенного набора символов с начала и конца текущей строки.
  • 14.
    Insert/Remove/Replace  Используется длявставки одной строки в другую, где value обозначает строку, вставляемую в вызывающую строку по индексу  Используется для удаления части строки.  Используется для замены части строки. 14 Вставка, удаление и замена строк
  • 15.
    ToUpper/ToLower  Делает заглавнымивсе буквы в вызывающей строке.  Делает строчными все буквы в вызывающей строке 15 Смена регистра
  • 16.
    Substring  В первойформе метода Substring() подстрока извлекается, начиная с места, обозначаемого параметром startIndex, и до конца вызывающей строки.  А во второй форме данного метода извлекается подстрока, состоящая из количества символов, определяемых параметром length, начиная с места, обозначаемого параметром startIndex. 16 Получение подстроки из строки
  • 17.
    17 Спецификаторы формата длястрок C или c Вывод значений в денежном (currency) формате. D или d Вывод целых значений. E или e Вывод значений в экспоненциальном формате, то есть в виде d.ddd…E+ddd или d.ddd…e+ddd. F или f Вывод значений с фиксированной точностью. G или g Формат общего вида. Вывод значений с фиксированной точностью или в экспоненциальном формате, в зависимости от того, какой формат требует меньшего количества позиций. N или n Вывод значений в формате d,ddd,ddd.ddd. После спецификации можно задать целое число, определяющее длину дробной части P или p Вывод числа в процентном формате R или r Отмена округления числа при преобразовании в строку. Гарантирует, что при обратном преобразовании в значение того же типа получится то же самое X или x Вывод значений в шестнадцатеричном формате.
  • 18.
    Специальный символ ФорматОписание c/C Денежная единица Указывает количество десятичных знаков d/D Целые числа Указывает минимальное количество цифр. При необходимости добавляются нули e/E Экспоненциальные числа Указывает количество десятичных знаков f/F Числа с фиксированной точкой Указывает количество десятичных знаков g/G Форматы e/E и g/G Использует более короткий формат из двух: f/F и g/G n/N Числа с фиксированной точкой с отделением групп разрядов Указывает количество десятичных знаков p/P Проценты Умножает число на 100 и выводит со знаком процентов. Указывает количество десятичных знаков r/R Формат кругового преобразования. Только фиксированная точка Форматирует число в строку таким образом, что его можно обратно преобразовать без потерь точности x/X Шестнадцатеричные числа Указывает минимальное количество цифр. При необходимости добавляются нули 18
  • 19.
    19 Специальный символ Значение 0Цифра или ноль # Цифра . Разделитель дроби , Разделитель тысяч % Процент e Экспонента ; Определяет разделы, которые описывают форматы для положительных, отрицательных чисел и нуля Экранирование специальных символов. Позволяет вставлять спец-символы как текст
  • 20.
    20 Console.WriteLine("{0:0000.00}", 1024.32); //"1024,32" Console.WriteLine("{0:00000.000}", 1024.32); // "01024,320" Console.WriteLine("{0:####.###}", 1024.32); // "1024,32" Console.WriteLine("{0:####.#}", 1024.32); // "1024,3" Console.WriteLine("{0:#,###.##}", 1024.32); // "1 024,32" Console.WriteLine("{0:##%}", 0.32); // "32%" Console.WriteLine("{0:<####.###>;[####.###];ноль}", 1024.32); // "<1024,32>" Console.WriteLine("{0:<####.###>;[####.###];ноль}", - 1024.32); // "[1024,32]" Console.WriteLine("{0:<####.###>;[####.###];ноль}", 0); // "ноль"
  • 21.
     0:00000 -00123  0:0.00 - 1.20  0:00.00 - 01.20  1.2 - 0:#.## - 1.2  123 - 0:##### - 123  123456 - 0:[##-##-##] - [12-34-56]  1234567890 - 0:# - 1234567890 0:(###) ###-####} - (123) 456-7890 1234567890 - 0:#,# 1,234,567,890  0:#,##0,, - 1,235  0:dddd MMMM - 21
  • 22.
    Специальный символ ФорматПример d Короткая дата 30.06.2014 D Длинная дата 30 июня 2014 г. t Короткое время 22:30 T Длинное время 22:30:10 f Длинная дата/короткое время 30 июня 2014 г. 22:30 F Длинная дата/длинное время 30 июня 2014 г. 22:30:10 g Короткая дата/короткое время 30.06.2014 22:30 G Короткая дата/длинное время 30.06.2014 22:30:10 M/m Месяц и день июня 30 O/o Обратный 2014-06- 30T22:30:10.0000000 R/r RFC1123 Mon, 30 Jun 2014 22:30:10 GMT s Для сортировки 2014-06-30T22:30:10 u Локальное, в универсальном формате 2014-06-30 22:30:10Z U GMT 30 июня 2014 г. 19:30:10 Y Год и месяц Июнь 2014 22
  • 23.
     Console.WriteLine("{0:d}", DateTime.Now);// "30.06.2014"  Console.WriteLine("{0:D}", DateTime.Now); // "30 июня 2014 р."  Console.WriteLine("{0:t}", DateTime.Now); // "2:57"  Console.WriteLine("{0:T}", DateTime.Now); // "2:57:53"  Console.WriteLine("{0:U}", DateTime.Now); // "29 июня 2014 р. 23:57:53"  Console.WriteLine("{0:Y}", DateTime.Now); // "Июнь 2014 р." 23
  • 24.
    ©Павловская Т.А. (НИУИТМО) 24 Примеры пользовательских шаблонов Число Шаблон Представление числа 1,243 00.00 01,24 1,243 #.## 1,24 0,1 00.00 00,10 0,1 #.## ,1
  • 25.
  • 26.
    26 При создании экземпляраобязательно использовать операцию new и конструктор, например:  StringBuilder sb = new StringBuilder("Привет мир"); Класс StringBuilder имеет два главных свойства Console.WriteLine("Длина строки: {0}", sb.Length); Console.WriteLine("Емкость строки:{0}",sb.Capacity);
  • 27.
  • 28.
    Append  Добавляет строкук текущей строке 28 AppendFormat  Добавляет строку, сформированную в соответствии со спецификатором формата Insert  Вставляет подстроку в строку
  • 29.
    Remove  Удаляет символиз текущей строки 29 Replace  Заменяет все вхождения символа другим символом или вхождения подстроки другой подстрокой ToString  Возвращает текущую строку в виде объекта System.String
  • 30.
    Когда надо использоватькласс String, а когда StringBulder? 30
  • 31.
    класс String вследующих случаях 31  При небольшом количестве операций и изменений над строками  При выполнении фиксированного количества операций объединения. В этом случае компилятор может объединить все операции объединения в одну  Когда надо выполнять масштабные операции поиска при построении строки, например IndexOf. Класс StringBuilder не имеет подобных методов
  • 32.
    класс StringBuilder вследующих случаях 32  При неизвестном количестве операций и изменений над строками во время выполнения программы  Когда предполагается, что приложению придется сделать множество подобных операций