Шаг 94.
Язык программирования C#. Начала
Работа с текстом. Создание текстового объекта

    На этом шаге мы рассмотрим различные случаи создания такого объекта.

    Теперь остановимся на способах создания объектов класса String. Один путь нам уже известен - можно воспользоваться текстовым литералом. Но существуют и иные возможности.


Еще раз напомним, что текстовый литерал (то есть текст в двойных кавычках) реализуется как объект класса String. Значение текстового литерала, которое мы воспринимаем именно как текст, в действительности является ссылкой на объект, в котором этот текст "спрятан". Поэтому когда объектной переменной типа string (или String) присваивается значение, то на самом деле этой переменной присваивается ссылка на текстовый объект.

    Способы создания текстовых объектов определяются версиями конструктора, которые есть у класса String. Фактически речь идет о том, какие аргументы можно передавать конструктору класса String. Все варианты рассматривать не будем, но основные перечислим. Итак, текстовый объект можно создать на основе символьного массива. В этом случае из элементов символьного массива формируется текст, и этот текст записывается в созданный текстовый объект. Пример создания текста на основе символьного массива представлен ниже:

  char[] symbs = { 'Я', 'з', 'ы', 'к', ' ', 'C', '#' };
  String txt = new String(symbs);

    В данном случае текстовый объект создастся на основе символьного массива symbs. Для создания объекта вызывается конструктор класса String, и аргументом ему передается символьный массив. Поскольку массив symbs создавался с использованием списка инициализации

  { 'Я', 'з', 'ы', 'к', ' ', 'C', '#' },
то в объект, на который ссылается переменная txt, будет записан текст "Язык С#".

    Если при создании текста на основе символьного массива конструктору класса String, кроме имени массива, передать еще и два целочисленных аргумента, то они будут определять индекс начального элемента в массиве для формирования текста и количество символов, используемых в тексте. Например, используется такая последовательность команд:

  char[] symbs = { 'М', 'ы', ' ', 'и', 'з', 'у', 'ч', 'а', 'е', 'м', ' ', 'C', '#' }; 
 String txt = new String(symbs, 3, 9);

    Исходный массив, на основе которого создается текстовый объект, инициализируется списком

  { 'М', 'ы', ' ', 'и', 'з', 'у', 'ч', 'а', 'е', 'м', ' ', 'C', '#' }
При создании текстового объекта конструктору класса String первым аргументом передается имя массива symbs. Есть еще второй и третий аргументы. Второй аргумент 3 означает, что из массива symbs при формировании текста нужно брать символы, начиная с элемента с индексом 3 (четвертый по порядку элемент в массиве со значением 'и'). Третий аргумент 9 означает, что всего нужно взять 9 символов. В итоге получается, что созданный текстовый объект содержит текст "изучаем С".

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

  String txt = new String('*', 5);

    В результате создается текстовый объект с текстом "*****" (символ '*' повторяется 5 раз). Иногда такой подход бывает удобен.


Существуют и другие способы создания текстовых объектов. В частности, аргументом конструктору можно передавать указатель на символьный или целочисленный (байтовый) массив с кодами символов, с дополнительными целочисленными аргументами или без них. Указатели мы рассмотрим позднее.

    Копию текстового объекта можно создать с помощью статического метода Сору() класса String. Копируемая строка передается аргументом методу Сору(). Результатом метода возвращается копия этой строки.


    На следующем шаге мы закончим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг