Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Символы и строки

Содержание

Символы charСимвольный тип char предназначен для хранения символа в кодировке Unicode. Символьный тип относится к встроенным типам данных С# и соответствует стандартному классу Сhar библиотеки .Net из пространства имен System.
Символы и строкисимволы char, неизменяемые строки string, изменяемые строки StringBilder, регулярные выражения Regex Символы charСимвольный тип char предназначен для хранения символа в кодировке Unicode. Символьный Основные методы static void Main()   {    try //Организация массива символов и работа с ним на основе базового класса Array: static Неизменяемые строки stringТип string, предназначенный для работы со стоками символов в кодировке Создание строк Методы работы со строками вызов статических методов происходит через обращение к имени класса: String.Concat(str1, str2) в class Program  {    static void Main() //сравниваем строки без учета регистра class Program  {  // методы разделения строки на элементы Split При работе с объектами класса string нужно учитывать их свойство неизменяемости, т.е. Изменяемые строкиЧтобы создать строку, которую можно изменять, в С# предусмотрен класс StringBuilder, static void Main()	{		try		{ 		StringBuilder str=new StringBuilder( using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2{  class Program  { Регулярные выраженияРегулярное выражение – это шаблон, по которому выполняется поиск соответствующего фрагмента Метасимволы в регулярных выраженияхЯзык описания регулярных выражений состоит из символов двух видов: Кроме метасимволов, обозначающие классы символов, могут применяться уточняющие метасимволы: Повторители – метасимволы, которые располагаются непосредственно после обычного символа или группы символов Регулярное выражение записывается в виде строкового литерала, перед строкой необходимо ставить символ Поиск в тексте по шаблонуПространство имен библиотеки базовых классов System.Text.RegularExpressions содержит все Поиск фрагментов строки, соответствующих заданному выражению, выполняется с помощью методов класса Regex:IsMach, Mach, Matches. /*Метод IsMach возвращает true, если фрагмент, соответствующий выражению, в заданной строке найден, /* Можно использовать конструкцию выбора из нескольких элементов. Варианты выбора перечисляются //есть ли в заданных строках номера телефона в формате xx-xx-xx или /*Метод Match класса Regex не просто определяет, содержится ли текст, соответствующий //подсчитать сумму целых чисел, встречающихся в тексте:using System;using System.Collections.Generic;using System.Linq;using System.Text;using /*Метод Matches класса Regex возвращает объект класса MatchCollection – коллекцию всех Редактирование текста // метод Replace класса Regex позволяет выполнять замену одного фрагмента using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;namespace ConsoleApplication3{  class Program  { using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;namespace ConsoleApplication3{  class Program  {
Слайды презентации

Слайд 2 Символы char
Символьный тип char предназначен для хранения символа

Символы charСимвольный тип char предназначен для хранения символа в кодировке Unicode.

в кодировке Unicode.

Символьный тип относится к встроенным типам

данных С# и соответствует стандартному классу Сhar библиотеки .Net из пространства имен System.

Слайд 3 Основные методы

Основные методы

Слайд 4 static void Main()
{

static void Main()  {  try  {

try
{

char b = 'B', c = '\x64', d = '\uffff';
Console.WriteLine("{0}, {1}, {2}", b, c, d);
Console.WriteLine("{0}, {1}, {2}", char.ToLower(b), char.ToUpper(c), char.GetNumericValue(d));
char a;
do //цикл выполнятеся до тех пор, пока не ввели символ e
{
Console.WriteLine("Введите символ: ");
a = char.Parse(Console.ReadLine());
Console.WriteLine("Введен символ {0}, его код {1}, его категория {2}", a, (int)a, char.GetUnicodeCategory(a));
if (char.IsLetter(a)) Console.WriteLine("Буква");
if (char.IsUpper(a)) Console.WriteLine("Верхний регистр");
if (char.IsLower(a)) Console.WriteLine("Нижний регистр");
if (char.IsControl(a)) Console.WriteLine("Управляющий символ");
if (char.IsNumber(a)) Console.WriteLine("Число");
if (char.IsPunctuation(a)) Console.WriteLine("Разделитель");
} while (a != 'e');
}
catch
{
Console.WriteLine("Возникло исключение");
}
}


Слайд 6 //Организация массива символов и работа с ним на

//Организация массива символов и работа с ним на основе базового класса

основе базового класса Array:
 static void Main()

{
char[] a ={ 'm', 'a', 'Х', 'i', 'M', 'u', 'S' , '!', '!', '!' };
char [] b="кол около колокола".ToCharArray(); //преобразование строки в массив символов
PrintArray("Исходный массив а:", a);
for (int x=0;x if (char.IsLower(a[x])) a[x]=char.ToUpper(a[x]);
PrintArray("Измененный массив а:", a);
PrintArray("Исходный массив b:", b);
Array.Reverse(b);
PrintArray("Измененный массив b:", b);
}
 
static void PrintArray(string line, Array a)
{
Console.WriteLine(line);
foreach( object x in a) Console.Write(x);
Console.WriteLine('\n');
}


Слайд 7 Неизменяемые строки string
Тип string, предназначенный для работы со

Неизменяемые строки stringТип string, предназначенный для работы со стоками символов в

стоками символов в кодировке Unicode.

Ему соответствует базовый тип

класса System.String библиотеки .Net.

Каждый объект string - это неизменяемая последовательность символов Unicode, т.е. методы, предназначенные для изменения строк, возвращают измененные копии, исходные же строки остаются неизменными.

Слайд 8 Создание строк

Создание строк

Слайд 9 Методы работы со строками

Методы работы со строками

Слайд 10 вызов статических методов происходит через обращение к имени

вызов статических методов происходит через обращение к имени класса: String.Concat(str1, str2)

класса:
String.Concat(str1, str2)

в остальных случаях через обращение к

экземплярам класса:
str.ToLower()

Слайд 11 class Program {
static

class Program {  static void Main()  {

void Main() {

string str1 = "Первая строка"; string str2 = string.Copy(str1);
string str3 = "Вторая строка«; string str4 = "ВТОРАЯ строка";
string strUp, strLow;
int result, idx;
Console.WriteLine("str1: " + str1); Console.WriteLine("str3: " + str3);
Console.WriteLine("str4: " + str4);
Console.WriteLine("Длина строки str1: " + str1.Length);

// Создаем прописную и строчную версии строки str1.
strLow = str1.ToLower(); strUp = str1.ToUpper();
Console.WriteLine("Строчная версия строки str1: " + strLow);
Console.WriteLine("Прописная версия строки str1: " + strUp);
Console.WriteLine();

// Сравниваем строки,
result = str1.CompareTo(str3);
if (result == 0) Console.WriteLine("str1 и str3 равны.");
else if (result < 0) Console.WriteLine("str1 меньше, чем str3");
else Console.WriteLine("str1 больше, чем str3");
Console.WriteLine();


Слайд 12 //сравниваем строки без

//сравниваем строки без учета регистра   result

учета регистра
result =

String.Compare(str3, str4, true);
if (result == 0) Console.WriteLine("str3 и str4 равны без учета регистра.");
else Console.WriteLine("str3 и str4 не равны без учета регистра.");
Console.WriteLine();
//сравниваем части строк
result = String.Compare(str1, 4, str2, 4, 2);
if (result == 0) Console.WriteLine("часть str1 и str2 равны");
else Console.WriteLine("часть str1 и str2 не равны"); Console.WriteLine();
// Поиск строк.
idx = str2.IndexOf("строка");
Console.WriteLine("Индекс первого вхождения подстроки строка: " + idx);
idx = str2.LastIndexOf("о");
Console.WriteLine("Индекс последнего вхождения символа о: " + idx);
//конкатенация
string str = String.Concat(str1, str2, str3, str4);
Console.WriteLine("конкатенация"+ str);
//удаление подстроки
str = str.Remove(0, str1.Length); Console.WriteLine(str);
//замена подстроки "строка" на пустую подстроку
str = str.Replace("строка", ""); Console.WriteLine(str);
} } }



Слайд 14 class Program
{
// методы разделения

class Program { // методы разделения строки на элементы Split и

строки на элементы Split и слияние массива строк в

единую строку Join

static void Main()
{
string poems = "тучки небесные вечные странники";
char[] div = { ' '}; //создаем массив разделителей
// Разбиваем строку на части,
string[] parts = poems.Split(div);
Console.WriteLine("Результат разбиения строки на части: ");
for (int i = 0; i < parts.Length; i++)
Console.WriteLine(parts[i]);
// Теперь собираем эти части в одну строку, в качестве разделителя используем символ |
string whole = String.Join(" | ", parts);
Console.WriteLine("Результат сборки: ");
Console.WriteLine(whole);
} }




Слайд 15 При работе с объектами класса string нужно учитывать

При работе с объектами класса string нужно учитывать их свойство неизменяемости,

их свойство неизменяемости, т.е. методы изменяют не сами строки,

а их копии.

 
string a="";
for (int i = 1; i <= 100; i++) a +="!";
Console.WriteLine(a);
 
В этом случае в памяти компьютера будет сформировано 100 различных строк вида:
!
!!
!!!

!!!...!!


Только последняя строка будет храниться в переменной а.
Ссылки на все остальные строчки будут потеряны, но эти строки будут храниться в памяти компьютера и засорять память. Бороться с таким засорением придется сборщику мусора, что будет сказываться на производительности программы, поэтому если нужно изменять строку, то лучше пользоваться классом StringBuilder.


Слайд 16 Изменяемые строки
Чтобы создать строку, которую можно изменять, в

Изменяемые строкиЧтобы создать строку, которую можно изменять, в С# предусмотрен класс

С# предусмотрен класс StringBuilder, определенный в пространстве имен System.Text.

Объекты этого класса всегда объявляются с явным вызовом конструктора класса (через операцию new) .




Слайд 17 static void Main() {
try {
StringBuilder str=new StringBuilder("Площадь"); PrintString(str);
str.Append(" треугольника равна"); PrintString(str);
str.AppendFormat("

static void Main()	{		try		{ 		StringBuilder str=new StringBuilder(

{0} см ", 123.456); PrintString(str);
str.Insert(8, "данного "); PrintString(str);
str.Remove(7, 21); PrintString(str);
str.Replace("а", "о"); PrintString(str);
StringBuilder str1=new

StringBuilder(Console.ReadLine());
StringBuilder str2=new StringBuilder(Console.ReadLine());
Console.WriteLine(str1.Equals(str2));
}
catch {
Console.WriteLine("Вознико исключение"); }
}
  static void PrintString(StringBuilder a) {
Console.WriteLine("Строка: "+a);
Console.WriteLine("Текущая длина строки " +a.Length);
Console.WriteLine("Объем буфера "+a.Capacity);
Console.WriteLine("Максимальный объем буфера "+a.MaxCapacity);
Console.WriteLine();
}


Слайд 19 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
class

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2{ class Program {  //С

Program
{

//С изменяемой строкой

можно работать не только как с объектом, но как с массивом символов:

static void Main()
{
StringBuilder a = new StringBuilder("2*3=3*2");
Console.WriteLine(a);
int k = 0;
for (int i = 0; i < a.Length; ++i)
if (char.IsDigit(a[i])) k += int.Parse(a[i].ToString());
Console.WriteLine(k);
}

}
}




Слайд 20 Регулярные выражения
Регулярное выражение – это шаблон, по которому

Регулярные выраженияРегулярное выражение – это шаблон, по которому выполняется поиск соответствующего

выполняется поиск соответствующего фрагмента текста.

Эффективный поиск в тексте по

заданному шаблону;
Редактирование текста;
Формирование итоговых отчетов по результатам работы с текстом.


Слайд 21 Метасимволы в регулярных выражениях
Язык описания регулярных выражений состоит

Метасимволы в регулярных выраженияхЯзык описания регулярных выражений состоит из символов двух

из символов двух видов: обычных символов и метасимволов.

Обычный

символ представляет в выражении сам себя, а метасимвол – некоторый класс символов.

Слайд 23 Кроме метасимволов, обозначающие классы символов, могут применяться уточняющие

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

метасимволы:


Слайд 24 Повторители – метасимволы, которые располагаются непосредственно после обычного

Повторители – метасимволы, которые располагаются непосредственно после обычного символа или группы

символа или группы символов и задают количество его повторений

в выражении

Слайд 25 Регулярное выражение записывается в виде строкового литерала, перед

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

строкой необходимо ставить символ @.

Символ @ можно не

ставить, если в качестве шаблона используется шаблон без метасимволов.

Если нужно найти какой-то символ, который является метасимволом (например, точку), можно это сделать защитив ее обратным слэшем. Т.е. просто точка означает любой одиночный символ, а \. означает просто точку.

Примеры регулярных выражений:

слово rus – @"rus" или "rus«

№ телефона в формате xxx-xx-xx –
@"\d\d\d-\d\d-\d\d" или @"\d{3}(-\d\d){2} "

номер автомобиля - @"[A-Z]\d{3}[A-Z]{2}\d{2,3}RUS"


Слайд 26 Поиск в тексте по шаблону
Пространство имен библиотеки базовых

Поиск в тексте по шаблонуПространство имен библиотеки базовых классов System.Text.RegularExpressions содержит

классов System.Text.RegularExpressions содержит все объекты платформы .NET Framework, имеющие

отношение к регулярным выражениям.

Класс, поддерживающий регулярные выражения, - класс Regex, он представляет неизменяемые откомпилированные регулярные выражения.

Для описания регулярного выражения в классе определено несколько перегруженных конструкторов:

Regex() – создает пустое выражение;

Regex(String) – создает заданное выражение;

Regex(String, RegexOptions) – создает заданное выражение и задает параметры для его обработки с помощью элементов перечисления RegexOptions (например, различать или нет прописные и строчные буквы).


Слайд 27 Поиск фрагментов строки, соответствующих заданному выражению, выполняется с

Поиск фрагментов строки, соответствующих заданному выражению, выполняется с помощью методов класса Regex:IsMach, Mach, Matches.

помощью методов класса Regex:

IsMach,
Mach,
Matches.


Слайд 28 /*Метод IsMach возвращает true, если фрагмент, соответствующий выражению,

/*Метод IsMach возвращает true, если фрагмент, соответствующий выражению, в заданной строке

в заданной строке найден, и false в противном случае*/

using

System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication3
{
class Program
{
static void Main()
{
Regex r = new Regex("собака", RegexOptions.IgnoreCase);
string text1 = "Кот в доме, собака в конуре.";
string text2 = "Котик в доме, собачка в конуре.";
Console.WriteLine(r.IsMatch(text1));
Console.WriteLine(r.IsMatch(text2)); }

} }


RegexOptions.IgnoreCase – означает, что регулярное выражение применяется без учеба регистра символов


Слайд 29 /* Можно использовать конструкцию выбора из нескольких

/* Можно использовать конструкцию выбора из нескольких элементов. Варианты выбора

элементов. Варианты выбора перечисляются через вертикальную черту*/

using System;
using System.Collections.Generic;
using

System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
Regex r = new Regex("собака|кот",RegexOptions.IgnoreCase);
string text1 = "Кот в доме, собака в конуре.";
string text2 = "Котик в доме, собачка в конуре.";
Console.WriteLine(r.IsMatch(text1));
Console.WriteLine(r.IsMatch(text2));
} } }



Слайд 30 //есть ли в заданных строках номера телефона

//есть ли в заданных строках номера телефона в формате xx-xx-xx

в формате xx-xx-xx или xxx-xx-xx:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using

System.Text.RegularExpressions;

namespace ConsoleApplication3
{
class Program
{
static void Main()
{
Regex r = new Regex(@"\d{2,3}(-\d\d){2}");
string text1 = "tel:123-45-67";
string text2 = "tel:no";
string text3 = "tel:12-34-56";
Console.WriteLine(r.IsMatch(text1));
Console.WriteLine(r.IsMatch(text2));
Console.WriteLine(r.IsMatch(text3));
} } }



Слайд 31 /*Метод Match класса Regex не просто определяет,

/*Метод Match класса Regex не просто определяет, содержится ли текст,

содержится ли текст, соответствующий шаблону, а возвращает объект класса

Match – последовательность фрагментов текста, совпавших с шаблоном*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication3
{
class Program {
static void Main() {
Regex r = new Regex(@"\d{2,3}(-\d\d){2}");
string text = @"Контакты в Минске tel:123-45-67, 123-34-56; fax:123-56-45
Контакты в Бресте tel:12-34-56; fax:12-56-45";
Match tel = r.Match(text);
while (tel.Success)
{
Console.WriteLine(tel);
tel = tel.NextMatch(); }
} } }



Слайд 32 //подсчитать сумму целых чисел, встречающихся в тексте:
using

//подсчитать сумму целых чисел, встречающихся в тексте:using System;using System.Collections.Generic;using System.Linq;using

System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication3{
class Program

{
static void Main() {
Regex r = new Regex(@"[-+]?\d+");
string text = @"5*10=50 -80/40=-2";
Match teg = r.Match(text);
int sum = 0;
while (teg.Success)
{
Console.WriteLine(teg);
sum += int.Parse(teg.ToString());
teg = teg.NextMatch();
}
Console.WriteLine("sum=" + sum);
} } }

Слайд 33 /*Метод Matches класса Regex возвращает объект класса

/*Метод Matches класса Regex возвращает объект класса MatchCollection – коллекцию

MatchCollection – коллекцию всех фрагментов заданной строки, совпавших с

шаблоном. При этом метод Matches многократно запускает метод Match, каждый раз начиная поиск с того места, на котором закончился предыдущий поиск*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
string text = @"5*10=50 -80/40=-2";
Regex theReg = new Regex(@"[-+]?\d+");
MatchCollection theMatches = theReg.Matches(text);
foreach (Match theMatch in theMatches)
{ Console.Write("{0} ", theMatch.ToString()); }
Console.WriteLine(); }
} }




Слайд 34 Редактирование текста
// метод Replace класса Regex позволяет

Редактирование текста // метод Replace класса Regex позволяет выполнять замену одного

выполнять замену одного фрагмента текста другим или удаление фрагментов

текста:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication3 {
class Program {

static void Main(string[] args) {
string text = @"Контакты в Минске tel:123-45-67, 123-34-56; fax:123-56-45.
Контакты в Бресте tel:12-34-56; fax:11-56-45";
Console.WriteLine("Старые данные\n" + text);
string newText = Regex.Replace(text, "123-", "890-");
Console.WriteLine("Новые данные\n" + newText);
}
}
}




Слайд 35 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;

namespace ConsoleApplication3
{

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;namespace ConsoleApplication3{ class Program {

class Program {
// Удаление

всех номеров телефонов из текста:

static void Main()
{
string text = @"Контакты в Минске tel:123-45-67, 123-34-56; fax:123-56-45.
Контакты в Бресте tel:12-34-56; fax:12-56-45";
Console.WriteLine("Старые данные\n"+text);
string newText=Regex.Replace(text, @"\d{2,3}(-\d\d){2}", "");
Console.WriteLine("Новые данные\n" + newText);
}
}
}





  • Имя файла: simvoly-i-stroki.pptx
  • Количество просмотров: 133
  • Количество скачиваний: 0