Зертханалық жұмыс №12 Тіркестерді өңдеумен байланысты тапсырмалар C#

Тіркестерді өңдеумен байланысты тапсырмалар – веб-парақшалар парсингі, мәтіннен іздеу, мәтіннен қажетті ақпаратты алумен байланысты қандайда бір талдамалық тапсырмалар және т.б.

C# тілінде тіркестік мәндер тип string болып табылады, ал берілген типпен жұмыстың барлық функционалдығы System.String класында шоғырланған.

Тіркесті құру:

string s1 = "hello";

string s2 = null;

string s3 = new String('a', 6); // результатом будет строка "aaaaaa"

string s4 = new String(new char[]{'w', 'o', 'r', 'l', 'd'});

 

Основные методы строк:

· Compare: екі тіркесті қолданушының локалына қарап салыстырады

· CompareOrdinal: екі тіркесті локалға қарамай салыстырады

· Contains: тіркесте тіркес бөлігі барма анықтайды

· Concat: тіркестерді біріктіреді

· CopyTo: тіркес бөлігін немесе барлық тіркесті басқа тіркеске көшіреді

· EndsWith: тіркестің соңы тіркес бөлігімен сәйкеспа анықтайды

· Format: тіркесті форматтайды

· IndexOf: тіркестегі символдың немесе тіркестің бірінші кіруінің индексін анықтайды

· Insert: тіркеске тіркес бөлігін қосады

· Join: тіркес жиымының элементтерін біріктіреді

· LastIndexOf: тіркестегі символдың немесе тіркестің соңғы кіруінің индексін анықтайды

· Replace: тіркесте символ немесе тіркесті басқа символ немесе тіркеспен алмастырады

· Split: бір тіркесті тіркестер жиымына ажыратады

· Substring: берілген позициядан бастап тіркестер тіркес бөлігін алады

· ToLower: барлық символдарды төменгі регистрге ауыстырады

· ToUpper: барлық символдарды жоғарғы регистрге ауыстырады

· Trim: тіркестегі бастапқы және соңғы бос орындарды жояды

 

Тіркестермен операциялар

Конкатенация.

Тіркестерді конкатенациялау немесе біріктіру + операциясымен де, Concat әдісінің көмегімен де жүзеге асырылуы мүмкін:

string s1 = "Программирование";

string s2 = "на языке С#";

string s3 = s1 + " " + s2;

string s4 = String.Concat(s3, "!!!");

Console.WriteLine("s3={0}", s3);

Console.WriteLine("s4={0}", s4);

 

Нәтижесі:

Тіркестерді біріктіру үшін Join әдісі де қолданылады:

string s5 = "1. Java";

string s6 = "2. C";

string s7 = "3. C++";

string s8 = "4. Python";

string s9 = "5. С#";

string[] values = new string[] { s5, s6, s7, s8, s9 };

 

String s10 = String.Join("\n", values);

Console.WriteLine("Most Popular Programming Languages:\n" + s10);

 

Нәтижесі:

 

Тіркестерді салыстыру . Тіркестерді салыстыру үшін Compare статикалық әдісі қолданылады:

#№1 жағдай

string s1 = "aaa";

string s2 = "aaa";

 

int result = String.Compare(s1, s2);

if (result<0)

{

Console.WriteLine("Строка s1 перед строкой s2");

}

else if (result > 0)

{

Console.WriteLine("Строка s1 стоит после строки s2");

}

else

{

Console.WriteLine("Строки s1 и s2 идентичны");

}

 

Нәтижесі:

#№2 жағдай

string s1 = "НАТО";

string s2 = "ООН";

 

int result = String.Compare(s1, s2);

if (result<0)

{

Console.WriteLine("Строка s1 перед строкой s2");

}

else if (result > 0)

{

Console.WriteLine("Строка s1 стоит после строки s2");

}

else

{

Console.WriteLine("Строки s1 и s2 идентичны");

}

 

Нәтижесі:

#№3 жағдай

string s1 = "НАТО";

string s2 = "ООН";

 

int result = String.Compare(s1, s2);

if (result<0)

{

Console.WriteLine("Строка s1 перед строкой s2");

}

else if (result > 0)

{

Console.WriteLine("Строка s1 стоит после строки s2");

}

else

{

Console.WriteLine("Строки s1 и s2 идентичны");

}

 

Нәтижесі:

 

Тіркестен іздеу. IndexOf әдісінің көмегімен біз бөлек символ немесе тіркестің бірінші кіруінің индексін анықтай аламыз, ал LastIndexOf әдісі символ немесе тіркестің тіркеске соңғы кірген индексін анықтайды:

string s1 = "Языки программирования";

 

char ch = 'а';

int indexOfbukva1 = s1.IndexOf(ch);

int indexOfbukva2 = s1.LastIndexOf(ch);

Console.WriteLine("Index bukvy 'а' - " + indexOfbukva1);

Console.WriteLine("Index bukvy 'а' - " + indexOfbukva2);

 

string podStroka = "мир";

int indexOfpodStroka = s1.IndexOf(podStroka); // равно 6

Console.WriteLine("Index podstroki 'мир' - " + indexOfpodStroka);

 

Нәтижесі:

 

Тіркестерді ажырату . Split әдісінің көмегімен тіркесті тіркестер жиымына бөлуге болады. Split әдісінің парметрі ретінде ажыратушы қызметін атқаратын символдар немесе тіркестер жиымын қабылдайды. Мысалы, тіркесті бос орын символдарымен ажыратып, ондағы сөздер санын санайық:

string text = "Программа не компилируется из-за ошибок";

 

string[] words = text.Split(new char[] { ' ' });

 

foreach (string s in words)

{

Console.WriteLine(s);

}

 

Нәтижесі:

string text = "Программа не компилируется из-за ошибок";

 

string[] words = text.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

 

foreach (string s in words)

{

Console.WriteLine(s);

}

 

*Мұнда StringSplitOptions.RemoveEmptyEntries параметрі барлық бос тіркестерді жояды.

 

Нәтижесі:

 

Тіркесті қиып алып тастау. Бастапқы және соңғы символдарды қию үшін Trim әдісі пайдаланылады:

string text = " Программа скомпилирована ";

 

string text1 = text.Trim();

string text2 = text1.Trim(new char[] { 'а', 'П' });

 

Console.WriteLine(text1);

Console.WriteLine(text2);

 

Нәтижесі:

Параметрсіз Trim әдісі бастапқы және соңғы бос орындарды қияды да, қиылған тіркесті қайтарады. Қандай бастапқы және соңғы символдарды қию керектігін нақты көрсету үшін біз әдіске осы символдар жиымын береміз.

Бұл әдістің бөліктік аналогтары бар: TrimStart әдісі бастапқы символдарды жоюды, ал TrimEnd әдісі соңғы символдарды жоюды.

 

Тіркестің белгілі бір бөлігін қиып алып тастауға Substring әдісі мүмкіндік береді:

string text = "Программа скомпилирована";

 

// обрезаем начиная с пятого символа

string text1 = text.Substring(4);

Console.WriteLine(text1);

 

// обрезаем сначала до последних пяти символов

string text2 = text.Substring(0, text.Length - 5);

Console.WriteLine(text2);

 

// обрезаем с четвертого до последних восьми символов

string text3 = text.Substring(3, text.Length - 8);

Console.WriteLine(text3);

 

Нәтижесі:

 

Қою. Бір тіркесті екіншісіне қою үшін Insert әдісі пайдаланылады:

string text = "Программа без ошибок";

 

string podstr = "скомпилирована ";

 

string t = text.Insert(10, podstr);

Console.WriteLine(t);

 

Нәтижесі:

Insert әдісінде бірінші параметр тіркесті орналастыру қажет индекс, ал екінші параметр сол орналастырылуға қажетті параметрдің өзі.

Тіркестерді жою. Тіркестің бөлігін жоюға Remove әдісі мүмкіндік береді:

string text = "Программа без ошибок";

 

// индекс последнего символа

int ind = text.Length - 1;

// вырезаем последний символ

string t1 = text.Remove(ind);

Console.WriteLine(t1);

 

// вырезаем первые два символа

string t2 = text.Remove(0, 4);

Console.WriteLine(t2);

 

// начиная с пятого символа вырезаем шесть символов

string t3 = text.Remove(5, 6);

Console.WriteLine(t3);

Нәтижесі:

 

Ауыстыру. Бір символ немесе тіркесті басқасына ауыстыру үшін Replace әдісі қолданылады:

string text = "Программа скомпилирована без ошибок";

 

string t1 = text.Replace("без ошибок", "с ошибками");

Console.WriteLine(t1);

 

string t2 = text.Replace("о", "");

Console.WriteLine(t2);

 

string t3 = text.Replace("р", "л");

Console.WriteLine(t3);

 

Нәтижесі:

 

Регистрді ауыстыру. Тіркесті жоғарғы және төменгі регистрге келтіру үшін сәйкесінше ToUpper() және ToLower() әдістері қолданылады:

string text = "Программа скомпилирована без ошибок";

 

Console.WriteLine(text.ToLower());

Console.WriteLine(text.ToUpper());

 

Нәтижесі:

 

Тапсырма

 

1. Аты-жөндеріңізді пернетақтадан жеке-жеке енгізіп, оларға біріктіру (конкатенация) амалын қолданып нәтижені басып шығарыңыз.

 

2. Мәтін енгізіп, қатарды бөлу (разделение) амалын қолдана отырып нәтижеде әрбір сөйлемді жаңа жолдан басып шығарыңыз.

 

3.

a) «приказ не утвержден» қатарына бөліп алу (обрезка), алмастыру (замена), жою (удаление), қою (вставка) және регистрді алмастыру амалдарын қолданып, нәтижеге «ПРИВЕТ» қатарын басып шығарыңыз;

ә) «РАСПЕЧАТАТЬ СИМВОЛЫ» қатарына бөліп алу (обрезка), алмастыру (замена), жою (удаление), қою (вставка) және регистрді алмастыру амалдарын қолданып, нәтижеге «спасибо» қатарын басып шығарыңыз;

б) «модель маркова» қатарына бөліп алу (обрезка), алмастыру (замена), жою (удаление), қою (вставка) және регистрді алмастыру амалдарын қолданып, нәтижеге «МАМА» қатарын басып шығарыңыз;

в) «ПОКРАСКА ВОРОТ» қатарына бөліп алу (обрезка), алмастыру (замена), жою (удаление), қою (вставка) және регистрді алмастыру амалдарын қолданып, нәтижеге «красота» қатарын басып шығарыңыз;

г) «ЖИЗНЬ СОЛДАТ не ценят» қатарына бөліп алу (обрезка), алмастыру (замена), жою (удаление), қою (вставка) және регистрді алмастыру амалдарын қолданып, нәтижеге «солнце» қатарын басып шығарыңыз;

 

 

Тапсырма:

1-есеп программа 1,5 бал;

2-есеп программа 1,5 бал;

3-есеп программа 5 бал;

Жалпы: 8 бал.