ITI0011RUS:Strings
Строка (англ. string) - множество символов. Строку можно воспринимать как массив букв (в общем случае, символов). Строка в языке Java является объектом, что значит, что в ее отношении действуют немного другие правила, чем в отношении примитивных (атомарных) типов данных.
Объявление строковой переменной:
String s;
И ее инициализация:
s = "quick brown fox jumps over the lazy dog";
Как и любую другую переменную, переменную строкового типа можно проиницилизировать на этапе ее объявления:
String s = "quick brown fox jumps over the lazy dog";
Методы объекта String
length()
Возвращает длину строки (сколько символов в строке).
System.out.println("hello".length()); // выведет "5" System.out.println("".length()); // выведет "0"
charAt()
Возвращает символ, который находится в строке по заданному индексу. Функция работает по принципу, схожем с чтением элемента в массиве по заданному индексу. Как и в массивах, в строках индексация элементов начинается с 0, тоесть индекс первого символа в строке 0, последнего s.length() - 1
. Метод возвращает в результате значение атомарного типа char
- тоесть один символ из строки.
char c = "hello".charAt(0); // c = 'h' c = "hello".charAt(1); // c = 'e'
substring()
Возвращает подстроку из строки. Существует два метода с названием substring, единственное различие между которыми заключается в количестве аргументов, которые эти методы принимают: один из них - вариант функции с одним аргументом, другой с двумя аргументами.
Версия метода substring с одним аргументом возвращает подстроку, первый символ которой является элементом исходной строки под заданным индексом, последним элементом возвращаемой подстроки является последний символ исходной строки.
System.out.println("hello".substring(1)); // выведет "ello" System.out.println("hello".substring(2)); // выведет "llo" System.out.println("hello".substring(3)); // выведет "lo" System.out.println("hello".substring(4)); // выведет "o"
Версия метода substring с двумя аргументами возвращает подстроку, первый символ которой является элементом исходной строки под заданным индексом, последним элементом возвращаемой подстроки является символ, предшествующий символу исходной строки имеющий индекс, задаваемый вторым параметром. Тоесть символ под первым индексом включен в подстроку, символ под вторым индексом - нет.
System.out.println("hello".substring(1,3)); // выведет "el" System.out.println("hello".substring(3,4)); // выведет "l"
indexOf()
Метод ищет в строке заданную (под)строку и возвращает позицию, на которой искомая (под)строка была найдена. Если искомой (под)строки не было найдено, метод возвращает значение -1.
System.out.println("hello".indexOf("h")); // выведет "0" System.out.println("hello".indexOf("he")); // выведет "0" System.out.println("hello".indexOf("llo")); // выведет "2" System.out.println("hello".indexOf("a")); // выведет "-1"
Существует также разновидность того же метода, который принимает два аргумента. Второй аргумент задает позицию в исходной строке, начиная с которого производится поиск (под)строки.
System.out.println("hello".indexOf("h", 0)); // выведет "0" System.out.println("hello".indexOf("h", 1)); // выведет "-1", поскольку символ "h" отсутствует в строке, если начать искать с позиции 1 (тоесть начиная со второго символа, фактически в строке "ello") System.out.println("hello".indexOf("e", 1)); // выведет "1" System.out.println("hello".indexOf("l")); // выведет "2" System.out.println("hello".indexOf("l", 2)); // выведет "3", поскольку если начать поиск с позиции 2, то символ "l" встретится под индексом 3.