На этом шаге мы рассмотрим различные случаи создания такого объекта.
Теперь остановимся на способах создания объектов класса String. Один путь нам уже известен - можно воспользоваться текстовым литералом. Но существуют и иные возможности.
Способы создания текстовых объектов определяются версиями конструктора, которые есть у класса String. Фактически речь идет о том, какие аргументы можно передавать конструктору класса String. Все варианты рассматривать не будем, но основные перечислим. Итак, текстовый объект можно создать на основе символьного массива. В этом случае из элементов символьного массива формируется текст, и этот текст записывается в созданный текстовый объект. Пример создания текста на основе символьного массива представлен ниже:
char[] symbs = { 'Я', 'з', 'ы', 'к', ' ', 'C', '#' }; String txt = new String(symbs);
В данном случае текстовый объект создастся на основе символьного массива symbs. Для создания объекта вызывается конструктор класса String, и аргументом ему передается символьный массив. Поскольку массив symbs создавался с использованием списка инициализации
{ 'Я', 'з', 'ы', 'к', ' ', 'C', '#' },
Если при создании текста на основе символьного массива конструктору класса String, кроме имени массива, передать еще и два целочисленных аргумента, то они будут определять индекс начального элемента в массиве для формирования текста и количество символов, используемых в тексте. Например, используется такая последовательность команд:
char[] symbs = { 'М', 'ы', ' ', 'и', 'з', 'у', 'ч', 'а', 'е', 'м', ' ', 'C', '#' }; String txt = new String(symbs, 3, 9);
Исходный массив, на основе которого создается текстовый объект, инициализируется списком
{ 'М', 'ы', ' ', 'и', 'з', 'у', 'ч', 'а', 'е', 'м', ' ', 'C', '#' }
Если конструктору класса String передать символьное значение и целое число, то в созданном текстовом объекте текст будет сформирован повторением символа (первый аргумент) в количестве, определяемом числом (второй аргумент). Пример такой ситуации приведен ниже:
String txt = new String('*', 5);
В результате создается текстовый объект с текстом "*****" (символ '*' повторяется 5 раз). Иногда такой подход бывает удобен.
Копию текстового объекта можно создать с помощью статического метода Сору() класса String. Копируемая строка передается аргументом методу Сору(). Результатом метода возвращается копия этой строки.
На следующем шаге мы закончим изучение этого вопроса.