Операции со строками и подстроками в Java
В этой статье мы рассмотрим операции со строкой и подстрокой. Вы узнаете, как соединять и сравнивать строки, как извлекать символы и подстроки, как выполнять поиск в строке.
Соединение строк в Java
Чтобы соединить строки в Java, подойдёт операция сложения
String str1 = "Java"; String str2 = "Hi"; String str3 = str1 + " " + str2; System.out.println(str3); // Hi Java
Если же в предстоящей операции сложения строк будет применяться нестроковый объект, допустим, число, данный объект преобразуется к строке:
String str3 = "Год " + 2020;
По факту, когда мы складываем строки с нестроковыми объектами, вызывается метод
Объединять строки можно и с помощью
String str1 = "Java"; String str2 = "Hi"; str2 = str2.concat(str1); // HiJava
Метод принимает строку, с которой нужно объединить вызывающую строку, возвращая нам уже соединённую строку.
Также мы можем использовать метод
String str1 = "Java"; String str2 = "Hi"; String str3 = String.join(" ", str2, str1); // Hi Java
Метод join — статический. Первый параметр — это разделитель, который будет использоваться для разделения подстрок в общей строке. Последующие параметры осуществляют передачу через запятую произвольного набора объединяемых подстрок — в нашем случае их две, но можно и больше.
Извлекаем символы и подстроки в Java
Чтобы извлечь символы по индексу, в классе String есть метод
String str = "Java"; char c = str.charAt(2); System.out.println(c); // v
Обратите внимание, что индексация начинается с нуля, впрочем, как и в массивах.
Если же нужно извлечь сразу группу символов либо подстроку, подойдёт
String str = "Hi world!"; int start = 6; int end = 11; char[] dst=new char[end - start]; str.getChars(start, end, dst, 0); System.out.println(dst); // world
Сравниваем строки в Java
Мы уже писали о том, как сравнивать строки в Java, используя для этого метод
Для определения используется лексикографический порядок. Допустим, строка "A" меньше строки "B", ведь символ 'A' в алфавите находится перед символом 'B'. Когда первые символы строк равны, в расчёт берутся следующие символы. К примеру:
String str1 = "hello"; String str2 = "world"; String str3 = "hell"; System.out.println(str1.compareTo(str2)); // -15 - str1 меньше, чем strt2 System.out.println(str1.compareTo(str3)); // 1 - str1 больше, чем str3
Поиск в строке в Java
Чтобы найти индекс первого вхождения подстроки в строку, используют метод
String str = "Hello world"; int index1 = str.indexOf('l'); // 2 int index2 = str.indexOf("wo"); //6 int index3 = str.lastIndexOf('l'); //9
Чтобы определить, начинается строка с определённой подстроки, применяют метод
String str = "myfile.exe"; boolean start = str.startsWith("my"); //true boolean end = str.endsWith("exe"); //true
Выполняем замену в строке в Java
Заменить в нашей строке одну последовательность символов другой можно с помощью метода
String str = "Hello world"; String replStr1 = str.replace('l', 'd'); // Heddo wordd String replStr2 = str.replace("Hello", "Bye"); // Bye world
Обрезаем строки в Java
Для удаления начальных и конечных пробелов применяют метод
String str = " hello world "; str = str.trim(); // hello world
Также существует метод
String str = "Hello world"; String substr1 = str.substring(6); // world String substr2 = str.substring(3,5); //lo
Меняем регистр в Java
При необходимости вы можете перевести все символы вашей строки в нижний регистр (
String str = "Hello World"; System.out.println(str.toLowerCase()); // hello world System.out.println(str.toUpperCase()); // HELLO WORLD
Split
С помощью этого метода вы сможете разбить строку на подстроки по конкретному разделителю. Под разделителем понимается какой-либо символ либо набор символов, передаваемые в метод в качестве параметра. Давайте для примера разобьём небольшой текст на отдельные слова:
String text = "OTUS is a good company"; String[] words = text.split(" "); for(String word : words){ System.out.println(word); }
В нашем случае строка разделится по пробелу, и мы получим следующий консольный вывод:
OTUS is a good company
Вот и всё! Узнать больше всегда можно на наших курсах:
При написании статьи использовались материалы: 1. «Java-примеры: найти последнее вхождение подстроки в строке». 2. «Основные операции со строками».