Класс String очень часто используется программистами, поэтому его следует изучить очень хорошо.
Давайте более подробно рассмотрим следующие методы класса String:
– lenght,
– charAt,
– equals,
– compareTo,
– valueOf,
– isEmpty,
– substring,
– IndexOf и lastIndexOf,
– Replace,
– Split.
Скачать исходники для статьи можно ниже
Как и в случае любого другого класса, вы можете создавать объекты типа String с помощью оператора new. Для создания пустой строки используется конструктор без параметров:
String s = new String():
Приведенный ниже фрагмент кода создает объект s типа String инициализируя его строкой из трех символов, переданных конструктору в качестве параметра в символьном массиве.
char chars[] = { 'а', 'b', 'с' }; String s = new String(chars); System.out.println(s):
Этот фрагмент кода выводит строку “abc”. Итак, у этого конструктора — 3 параметра:
String(char chars[], int начальныйИндекс, int числоСимволов);
Используем такой способ инициализации в нашем очередном примере:
char chars[] = { 'a', 'b', 'с', 'd', 'e', 'f' }: String s = new String(chars,2,3); System.out.println(s);
Этот фрагмент выведет “cde”.
Специальный синтаксис для работы со строками.
В Java включено несколько приятных синтаксических дополнений, цель которых — помочь программистам в выполнении операций со строками. В числе таких операций: создание объектов типа String, слияние нескольких строк и преобразование других типов данных в символьное представление.
Java включает в себя стандартное сокращение создания строк — запись в виде литерала, в которой содержимое строки заключается в пару двойных кавычек. Приводимый ниже фрагмент кода эквивалентен одному из предыдущих, в котором строка инициализировалась массивом типа char.
String s = "abc"; System.out.println(s);
Метод length
Один из общих методов, используемых с объектами String — метод length, возвращающий число символов в строке. Очередной фрагмент выводит число 3, поскольку в используемой в нем строке — 3 символа.
String s = "abc"; System.out.println(s.length);
Вывод:
3
В Java интересно то, что для каждой строки-литерала создается свой представитель класса String, так что вы можете вызывать методы этого класса непосредственно со строками-литералами, а не только со ссылочными переменными. Очередной пример также выводит число 3.
System.out.println("abc".Length());
Вывод:
3
Метод charAt.
Извлечение символов.
Для того, чтобы извлечь одиночный символ из строки, вы можете сослаться непосредственно на индекс символа в строке с помощью метода charAt.
String surname = "Иванов"; char ch = surname.charAt(0); System.out.println(ch);
Вывод:
И
Если вы хотите в один прием извлечь несколько символов, можете воспользоваться методом getChars. В приведенном ниже фрагменте показано, как следует извлекать массив символов из объекта типа String.
Метод equals (сравнение).
Если вы хотите узнать, одинаковы ли две строки, вам следует воспользоваться методом equals класса String. Альтернативная форма этого метода называется equalsIgnoreCase, при ее использовании различие регистров букв в сравнении не учитывается.
String s1 = "Hello"; String s2 = "Hello"; System.out.println(s1.equals(s2));
Вывод:
true
Метод valueOf.
Если вы имеете дело с каким-либо типом данных и хотите вывести значение этого типа в удобочитаемом виде, сначала придется преобразовать это значение в текстовую строку. Для этого существует метод valueOf. Такой статический метод определен для любого существующего в Java типа данных (все эти методы совмещены, то есть используют одно и то же имя). Благодаря этому не составляет труда преобразовать в строку значение любого типа.
Зачастую бывает недостаточно просто знать, являются ли две строки идентичными. Для приложений, в которых требуется сортировка, нужно знать, какая из двух строк меньше другой. Для ответа на этот вопрос нужно воспользоваться методом compareTo класса String. Если целое значение, возвращенное методом, отрицательно, то строка, с которой был вызван метод, меньше строки-параметра, если положительно — больше. Если же метод compareTo вернул значение 0, строки идентичны. Ниже приведена программа, в которой выполняется пузырьковая сортировка массива строк, а для сравнения строк используется метод compareTo. Эта программа выдает отсортированный в алфавитном порядке список строк.
public class Main { public static void main(String[] args) { String a[] = {"привет ","мир ","небо"}; for (int j = 0; j < a.length; j++) { for (int i = j + 1; i < a.length; i++) { if (a[i].compareTo(a[j]) < 0) { String helper = a[j]; a[j] = a[i]; a[i] = helper; } } System.out.println(a[j]); } } }
Метод isEmpty.
Данный метод проверяет: содержится ли что-то в строке.
public class Main { public static void main(String[] args) { String a = ""; if (a.isEmpty()) { System.out.println("Пусто"); } else { System.out.println(a); } } }
Вывод программы:
Пусто
Метод substring.
Вы можете извлечь подстроку из объекта String, используя метод substring. Этот метод создает новую копию символов из того диапазона индексов оригинальной строки, который вы указали при вызове. Можно указать только индекс первого символа нужной подстроки — тогда будут скопированы все символы, начиная с указанного и до конца строки. Также можно указать и начальный, и конечный индексы— при этом в новую строку будут скопированы все символы, начиная с первого указанного, и до (но не включая его) символа, заданного конечным индексом.
"Hello World".substring(6) -> "World" "Hello World".substring(3,8) -> "lo Wo"
Методы IndexOf и lastIndexOf.
В класс String включена поддержка поиска определенного символа или подстроки, для этого в нем имеются два метода — indexOf и lastIndexOf. Каждый из этих методов возвращает индекс того символа, который вы хотели найти, либо индекс начала искомой подстроки. В любом случае, если поиск оказался неудачным, методы возвращают значение -1.
public class Main { public static void main(String[] args) { String stroka = "Папа дома, мама дома, сын дома, дочь дома"; System.out.println(stroka.substring(0, 4)); } }
Вывод программы:
Папа
Метод Replace.
Методу replace в качестве параметров задаются два символа. Все символы, совпадающие с первым, заменяются в новой копии строки на второй символ.
"Hello".replace('l' , 'w') -> "Hewwo"
Метод Split.
Метод разбивает строку на массив строк.
public class Main { public static void main(String[] args) { String stroka = "папа дома , мама дома"; System.out.println(stroka); String str[] = stroka.split(" "); int l = str.length; for (int i = 0; i < l; i++) { System.out.println("str[" + i + "] = " + str[i]); } } }
Вывод программы:
папа дома , мама дома
str[0] = папа
str[1] = дома
str[2] = ,
str[3] = мама
str[4] = дома