Учебное пособие: Наследование и классы-коллекции
Регистр букв при замене учитывается.
Как убрать пробелы в начале и конце строки
Метод trim() возвращает новую строку, в которой удалены начальные и конечные символы с кодами, не превышающими '\u0020'.
Как преобразовать данные другого типа в строку
В языке Java принято соглашение — каждый класс отвечает за преобразование других типов в тип этого класса и должен содержать нужные для этого методы.
Класс String содержит восемь статических методов valueof (type elem) преобразования в строку примитивных типов boolean, char, int, long, float, double, массива char[], и просто объекта типа Object.
Девятый метод valueof(char[] ch, int offset, int len) преобразует в строку подмассив массива ch, начинающийся с индекса offset и имеющий len элементов.
Кроме того, в каждом классе есть метод toString (), переопределенный или просто унаследованный от класса Object. Он преобразует объекты класса в строку. Фактически, метод valueOf() вызывает метод toString() соответствующего класса. Поэтому результат преобразования зависит от того, как реализован метод toString().
Еще один простой способ — сцепить значение elem какого-либо типа с пустой строкой: "" + elem. При этом неявно вызывается метод elem.toString ().
Синтаксический разбор строки
Задача разбора введенного текста — вечная задача программирования, наряду с сортировкой и поиском.
В пакет java.utilвходит простой классStringTokenizer, облегчающий разбор строк.
Класс StringTokenizer
Класс StringTokenizer из пакета java.util небольшой, в нем три конструктора и шесть методов.
Первый конструктор StringTokenizer (String str) создает объект, готовый разбить строку str на слова, разделенные пробелами, символами табуляций '\t', перевода строки '\n' и возврата каретки '\r'. Разделители не включаются в число слов.
Второй конструкторStringTokenizer (Stringstr, String delimeters) задает разделители вторым параметром delimeters, например:
StringTokenizer("Казнить,нельзя:пробелов-нет", " \t\n\r,:-");
Здесь первый разделитель — пробел. Потом идут символ табуляции, символ перевода строки, символ возврата каретки, запятая, двоеточие, дефис. Порядок расположения разделителей в строке delimeters не имеет значения. Разделители не включаются в число слов.
Третий конструктор позволяет включить разделители в число слов:
StringTokenizer(String str, String delimeters, boolean flag);
В разборе строки на слова активно участвуют следующие методы:
oметод nextToken() возвращает в виде строки следующее слово.
oметод hasMoreTokens() возвращает true, если в строке еще есть слова, и false, если слов больше нет.
oметод countTokens() возвращает число оставшихся слов.
oметод nextToken(string newDelimeters) позволяет "на ходу" менять разделители. Следующее слово будет выделено по новым разделителям newDelimeters; новые разделители действуют далее вместо старых разделителей, определенных в конструкторе или предыдущем методе nextToken().
oметоды nextElement() и hasMoreElements() реализуют интерфейс Enumeration. Они просто обращаются к методам nextToken() и hasMoreTokens().
Пример. Разбиение строки на слова :
String s = "Строка, которую мы хотим разобрать на слова";
StringTokenizer st = new StringTokenizer(s, " \t\n\r,.");