Главная » Java » Обработка строк Java

0

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

publiс static String delimitedString( String from, char start, char end)

{

int startpos = from.indexOf(start);

 int endpos ~ from.lastIndexOf(end);

if (startpos > endpos)

// Начальный разделитель расположен после конечного return null;

else if (startpos == -1)

// нет начального разделителя return null;

else if (endpos == -1)

// Нет конечного разделителя return from.substring(startPos); else

// оба разделителя найдены

return from.substring(startPos, endpos + 1);

}

Метод delimitedString возвращает новый объект String, содержащий часть Исходной строки from, ограниченную символами-разделителями start и end, т.е. Начинающуюся символом start и завершающуюся символом end. Если символ start найден, а end – нет, метод возвращает новый объект String, содержащий часть строки from, начиная с символа start и до конца from. Метод оперирует двумя Перегруженными формами стандартного метода substring. Первая версия substring требует задания начальной позиции в исходной строке и возвращает ее часть, начиная с этой позиции и до конца строки. Вторая форма метода предполагает передачу двух параметров, представляющих начальную и конечную позиции в строке, и возвращает новую строку, содержащую все символы исходной, начиная с начальной Позиции и завершая конечной позицией, причем последний символ в итоговую строку не включается. Поэтому в аргументе последней инструкции кода к значению endpos прибавлена единица – таким образом метод гарантирует, что в строку-результат попадет и символ конечного разделителя. Например, при выполнении команды

delimitedString("Ilаdit «Bonjour!»", ‘«’, ‘»’); результатом будет

«Bonjour!»

Ниже приведена информация о других методах обработки строк. public String replace(char oldСhar, char newСhar)

Возвращает новый объект String, в котором все экземпляры символа oldСhar заменены символами newСhar.

public String trim()

Возвращает новый объект String, в котором удалены все начальные и конечные символы пробелов.

Задачи преобразования регистров символов связаны с вопросами локализации - они решаются по-разному, в зависимости от существующих местных традиций и особенностей той или иной культуры. Платформа Java позволяет пользователям выбирать необходимый региональный стандарт, в котором, в частности, учтены и правила преобразования регистра символов. Информация о региональных стандартах представляется с помощью объектов класса Localе, который подробно рассмотрен в главе 19. При отсутствии явно заданного аргумента типа Localе методы toLowerCase и toUpperCase, описанные ниже, оперируют текущими значениями Localе, принятыми по умолчанию.

public String toLowerCase()

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

public String toUpperCase()

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

public String toLowerCase(Locale lос)

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

public String toUppercase(Locale lос)

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

Метод concat возвращает новую строку, которая служит результатом сцепления (конкатенации) двух строк. Следующие инструкции кода равнозначны:

newStr = oldStr.concat(" еще");

newstr = oldStr + " еще";

Упражнение 9.3. Рассмотренный выше метод delimitedStгing предусматривает возможность поиска в исходной строке только одной, самой "длинной" строки, ограниченной заданными символами-разделителями. Напишите версию метода, который способен возвращать массив всех экземпляров "коротких" строк, удовлетворяющих тому же условию.

Источник: Арнолд, Кен, Гослинг, Джеймс, Холмс, Дэвид. Язык программирования Java. 3-е изд .. : Пер. с англ. – М. : Издательский дом «Вильяме», 2001. – 624 с. : ил. – Парал. тит. англ.

По теме:

  • Комментарии