Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Методы и свойства класса String

Поиск

 

Название метода (свойства) Описание
Compare, CompareOrdinal, CompareTo, Equals, EndsWith StartsWith Методы выполняют операции сравнения строк
IndexOf, IndexOfAny, LastIndexOf, LastIndexOfAny Позволяют получить индекс подстроки или знака Unicode в строке
Copy и CopyTo Служат для копирования строки или подстроки в другую строку или в массив типа Char

Окончание табл. 1.2

Название метода (свойства Описание
Substring и Split Применяются для создания одной или нескольких новых строк из частей исходной строки
Concat и Join Выполняют операции создания новой строки из одной или нескольких подстрок
Insert, Replace, Remove, PadLeft, PadRight, Trim, TrimEnd и TrimStart Предназначены для модификации всей строки или ее части
ToLower, ToLowerInvariant, ToUpper и ToUpperInvariant Выполняют изменения регистра знака Unicode в строке  
Format Служит для замены одного или нескольких местозаполнителей элементов формата в строке текстовым представлением одного или нескольких числовых значений, значений даты и времени или значений перечислимого типа
IsNormalized Позволяет проверить, нормализована ли строка в соответствии с этой формой нормализации. С помощью метода Normalize можно создать строку, нормализованную в соответствии с определенной формой нормализации

Свойства

Length Используется для определения количества объектов типа Char в строке
Chars Используется для доступа к самим объектам Char в строке

 

Текст, заданный строкой, зачастую представляет собой совокупность структурированных элементов: абзацев, предложений, слов, скобочных выражений и т. д. При работе с таким текстом необходимо разделить его на элементы, пользуясь специальными разделителями, которыми могут быть пробелы, скобки, знаки препинания. Подобные задачи постоянно возникают при работе со структурированными текстами. Пример программы, в которой применяются методы Split
и Join класса String для работы со структурированным текстом приведен в листинге 1.4, а результаты работы этой программы показаны на рис. 1.3.

 

Листинг 1.4. Программа для работы со структурированным текстом

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace тест _Split_ и _Join

{

Class Program

{

   static void Main(string[ ] args)

   {

string txt = "Динамический метод Split выполняет разбор текста на

 элементы."

+    "Статический метод Join собирает строку из элементов";

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

Console.WriteLine("Разделение текста на простые предложения:");

 

// Размерность массивов SimpleSentences и Words устанавливается

 // в соответствии с размерностью массива, возвращаемого методом Split

string[ ] SimpleSentences, Words;

// В качестве разделителя предложений указан символ «точка»

SimpleSentences = txt.Split('.');

for(int i = 0; i < SimpleSentences.Length; i++)

Console.WriteLine("SimpleSentences[{0}] = {1}", i, SimpleSentences[i]);

string txtjoin = string.Join(",",SimpleSentences);

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

// В качестве разделителя слов указаны символы «запятая»,

// «запятая с пробелом» и «пробел»

Words = txt.Split(', ', ' ');                           

// Вывод значений слов

for(int i = 0; i < Words.Length; i++)

Console.WriteLine("Words[{0}] = {1}", i, Words[i]);

txtjoin = string.Join(" ",Words);

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

Console.ReadLine();

   }

}

}

 

 

Рис. 1.3. Вывод программы из листинга 1.4

 

Класс StringBuilder. Класс StringBuilder предоставляет подобный строке объект, значение которого является изменяемой последовательностью знаков. Значение считается изменяемым потому, что после создания его можно изменить путем добавления, удаления, замены или вставки знаков.

Наиболее часто используемые методы класса StringBuilder приведены в табл. 1.3, а примеры их применения показаны в листинге 1.5 и рис. 1.4.

 

Таблица 1.3

Методы класса StringBuilder

 

Название метода Описание
Append(<объект>) К строке, вызвавшей метод, присоединяется строка, полученная из объекта, который передан методу в качестве параметра
Insert(int location,< объект >) Вставляет строку, полученную из объекта, в позицию, указанную параметром location. Частным случаем метода Insert является метод Append
Remove (int start, int len) Удаляет подстроку длины len, начинающуюся с позиции start
Replace (string str1,string str2) Заменяет все вхождения подстроки str1 на строку str2

Листинг 1.5. Демонстрация методов класса StringBuilder

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace тест _StringBuilder

{

class Program

{

   static void Main(string[ ] args)

   {

     // Вызов конструктора класса StringBuilder для создания объекта с

    // именем sb  длиной 50 символов и инициализация его значением
               // константы

       StringBuilder sb = new StringBuilder(" Строка ", 50);

     // Добавление символов А, Б, С к концу объекта StringBuilder

       sb.Append(new char[ ] {' А ', ' Б ', ' С '});

     // Вывод длины строки и ее значения на экран

   Console.WriteLine("{0} chars: {1}", sb.Length, sb.ToString());

     // Вставка строки в начало объекта sb

     sb.Insert(0, " Начало: ");

        Console.WriteLine("{0} chars: {1}", sb.Length, sb.ToString());

    // Замена всех символов, являющихся русской буквой а нижнего

   // регистра строки sb, на символы, являющиеся русской буквой А

              // верхнего регистра

      sb.Replace('а', 'А');

    // Вывод длины новой строки и ее значения на экран

      Console.WriteLine("{0} chars: {1}", sb.Length, sb.ToString());

Console.ReadLine();

   }

}

}

 

Рис. 1.4. Вывод программы

из листинга 1.5

Ввод текста из файла. Чтобы прочитать текст из файла, необходимо выполнить следующие действия:

– подключить пространство имен, в котором описываются стандартные классы для работы с файлами, using System. IO;

– объявить файловую переменную и связать ее с файлом на диске;

– выполнить операции чтения текста из файла;

– закрыть файл.

В листинге 1.6 приведен пример программы, выполняющей чтение текста из файла построчно и вывод прочитанных строк на консоль с проставление номеров строк.

 

Листинг 1.6. Чтение текста из файла и вывод его на консоль

 

using System;

using System.IO;

using System.Collections.Generic;

using System.Text;

namespace file_text

{

class Program

{

   static void Main(string[ ] args)

   {

       try

           {

          // Создание объекта класса StreamReader для чтения из файла

          // input.txt

            StreamReader f = new StreamReader("input.txt");

           string s;

         long i = 0;

          //Чтение строк из файла. Строка определяется как последователь-

          // ность символов, за которыми следует перевод строки (\n),

         // возврат каретки (\r) или за символом возврата каретки сразу

         // следует символ перевода строки (\r\n)

         // Возвращается значение null, если достигнут конец входного

         // потока

            while ((s = f.ReadLine())!= null)

          // Вывод на экран пронумерованных строк

       Console. WriteLine ("{0}: {1}", ++ i, s);

                         f. Close ();       

// Закрытие файла

       }

      // Исключение FileNotFoundExceptio n создается, когда попытка

      // доступа к файлу, не существующему на диске, заканчивается

      // неудачей

       catch (FileNotFoundException e)

       {

           Console.WriteLine(e.Message);

            Console. WriteLine ("Проверьте правильность имени файла");

           return;

      }

      Console.ReadLine();

   }

}

}

Если нужно считать все символы до конца файла и возвратить считанные данные как одну строку типа String, то можно воспользоваться оператором:

 

string s = f. ReadToEnd ();

 

Порядок выполнения работы

1. Изучить описание библиотечных классов Сhar, String, StringBuilder,предназначенных для обработки символов и строк.

2. Разработать программу (консольное приложение) на языке С # в соответствии с вариантом практического задания.

3. Ответить на контрольные вопросы.

4. Составить отчет в электронном виде, который должен содержать титульный лист, цель лабораторной работы, задание, ответы на контрольные вопросы, листинг программы и результаты ее работы.

 

Контрольные вопросы и задания

 

1. Какой класс библиотеки FCL предназначен для работы с символами?

2. Назовите классы библиотеки FCL для работы со строками.

3. Каким образом можно создать объекты класса String в программах на языке C#?

4. Приведите примеры создания объектов класса String.

5. Может ли быть изменен объект класса String после его создания?

6. С помощью какого метода класса String можно выполнить разбор текста на составляющие элементы?

7. Каким образом можно собрать строку из составляющих ее элементов?

8. В каких случаях для работы со строками следует использовать методы класса String Builder?

9. Каким образом выполняется добавление символов к концу объекта класса StringBuilder?

10.  Напишите код для вставки строки в начало объекта класса StringBuilder.

11.  В каком пространстве имен определены классы для работы с файлами?

12.  Перечислите действия, которые необходимо выполнить для чтения текста из файла.

Варианты практических заданий

 

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

1. Считать из текстового файла три предложения и вывести их на экран в обратном порядке.

2. Считать текст из файла и вывести на экран только предложения, содержащие введенное с клавиатуры слово.

3. Считать текст из файла и вывести на экран только строки, содержащие двузначные числа.

4. Считать английский текст из файла и вывести на экран слова, начинающиеся с гласных букв.

5. Считать текст из файла и вывести его  на экран, меняя местами каждые два соседних слова.

6.Считать текст из файла и вывести на экран только предложения, не содержащие запятых.

7. Считать текст из файла и определить, сколько в нем слов,
состоящих не более чем из четырех букв.

8. Считать текст из файла и вывести на экран только цитаты,
т. е. предложения, заключенные в кавычки.

9. Считать текст из файла и вывести на экран только предложения, состоящие из заданного количества слов.

10. Считать английский текст из файла и вывести на экран слова, начинающиеся и оканчивающиеся на гласные буквы.

11. Считать текст из файла и вывести на экран только строки, не содержащие двузначных чисел.

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

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

14. Считать текст из файла и вывести на экран, заменив цифры от 0 до 9 словами «ноль», «один»,..., «девять» и начиная каждое предложение с новой строки.

15. Считать текст из файла, вывести его на экран, найти в нем самое длинное слово и определить, сколько раз оно встретилось в тексте.

16. Считать текст из файла и вывести на экран сначала вопросительные, а затем восклицательные предложения.

17. Считать текст из файла и вывести его на экран, добавляя после каждого предложения, сколько раз встретилось в нем введенное с клавиатуры слово.

18. Считать текст из файла и вывести на экран все его предложения в обратном порядке.

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

20. Считать текст из файла и вывести на экран предложения, содержащие максимальное количество знаков пунктуации.

21. В исходном тексте удалить все строки, начинающиеся на заданную букву.

22. Подсчитать, сколько раз во введенном с клавиатуры тексте встречается слово «по».

23. Зашифровать введенный текст, заменив каждый символ на символ, стоящий через один от данного в таблице кодировки. Исходное разбиение на строки должно быть сохранено. Написать программу дешифрации зашифрованного файла.

24. В исходном тексте определить количество слов, у которых первый и последний символы совпадают друг с другом.

25. Во введенном тексте заменить строчные буквы прописными и повторить дважды каждую цифру.

26. Во введенном тексте заменить прописные буквы строчными и повторить дважды каждую букву А.

27. Выяснить, есть ли во введенном тексте слова, заканчивающиеся на букву f, и подсчитать количество таких слов. Слова в тексте разделяются пробелами.

28. Распечатать введенный текст, удалив из него символы, не являющиеся буквами и цифрами, и заменив каждую цифру на две звездочки (**). Исходное разбиение текста на строки должно быть сохранено.

29. В исходном тексте заменить несколько подряд идущих пробелов одним и подсчитать количество строк, начинающихся на заданную букву.

 

Лабораторная работа 2

СОЗДАНИЕ КЛАССОВ

 

Цель работы: приобретение практических навыков по созданию классов.

Задачи работы:

– изучить средства языка С # для создания классов;

– выполнить практическое задание по разработке собственных классов в программах на языке С #;

– изучить возможности унифицированного языка моделирования Unified Modeling Language (UML) для представления классов;

– разработать UML -диаграмму классов.

 



Поделиться:


Последнее изменение этой страницы: 2022-09-03; просмотров: 59; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.3.204 (0.007 с.)