HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>В этой статье мы рассмотрим операции со строкой и подстрокой. Вы узнаете, как соединять и сравнивать строки, как извлекать символы и подстроки, как выполнять поиск в строке.</p>
1 <p>В этой статье мы рассмотрим операции со строкой и подстрокой. Вы узнаете, как соединять и сравнивать строки, как извлекать символы и подстроки, как выполнять поиск в строке.</p>
2 <h2>Соединение строк в Java</h2>
2 <h2>Соединение строк в Java</h2>
3 <p>Чтобы соединить строки в Java, подойдёт операция сложения "+":</p>
3 <p>Чтобы соединить строки в Java, подойдёт операция сложения "+":</p>
4 String str1 = "Java"; String str2 = "Hi"; String str3 = str1 + " " + str2; System.out.println(str3); // Hi Java<p>Если же в предстоящей операции сложения строк будет применяться нестроковый объект, допустим, число, данный объект преобразуется к строке:</p>
4 String str1 = "Java"; String str2 = "Hi"; String str3 = str1 + " " + str2; System.out.println(str3); // Hi Java<p>Если же в предстоящей операции сложения строк будет применяться нестроковый объект, допустим, число, данный объект преобразуется к строке:</p>
5 String str3 = "Год " + 2020;<p>По факту, когда мы складываем строки с нестроковыми объектами, вызывается метод valueOf() класса String. Этот метод преобразует к строке почти все типы данных. Чтобы преобразовать объекты разных классов, valueOf вызывает метод toString() данных классов.</p>
5 String str3 = "Год " + 2020;<p>По факту, когда мы складываем строки с нестроковыми объектами, вызывается метод valueOf() класса String. Этот метод преобразует к строке почти все типы данных. Чтобы преобразовать объекты разных классов, valueOf вызывает метод toString() данных классов.</p>
6 <p>Объединять строки можно и с помощью concat():</p>
6 <p>Объединять строки можно и с помощью concat():</p>
7 String str1 = "Java"; String str2 = "Hi"; str2 = str2.concat(str1); // HiJava<p>Метод принимает строку, с которой нужно объединить вызывающую строку, возвращая нам уже соединённую строку.</p>
7 String str1 = "Java"; String str2 = "Hi"; str2 = str2.concat(str1); // HiJava<p>Метод принимает строку, с которой нужно объединить вызывающую строку, возвращая нам уже соединённую строку.</p>
8 <p>Также мы можем использовать метод join(), позволяющий объединять строки с учетом разделителя. Допустим, две строки выше слились в слово "HiJava", однако мы бы хотели разделить подстроки пробелом. Тут и пригодится join():</p>
8 <p>Также мы можем использовать метод join(), позволяющий объединять строки с учетом разделителя. Допустим, две строки выше слились в слово "HiJava", однако мы бы хотели разделить подстроки пробелом. Тут и пригодится join():</p>
9 String str1 = "Java"; String str2 = "Hi"; String str3 = String.join(" ", str2, str1); // Hi Java<p>Метод join - статический. Первый параметр - это разделитель, который будет использоваться для разделения подстрок в общей строке. Последующие параметры осуществляют передачу через запятую произвольного набора объединяемых подстрок - в нашем случае их две, но можно и больше.</p>
9 String str1 = "Java"; String str2 = "Hi"; String str3 = String.join(" ", str2, str1); // Hi Java<p>Метод join - статический. Первый параметр - это разделитель, который будет использоваться для разделения подстрок в общей строке. Последующие параметры осуществляют передачу через запятую произвольного набора объединяемых подстрок - в нашем случае их две, но можно и больше.</p>
10 <h2>Извлекаем символы и подстроки в Java</h2>
10 <h2>Извлекаем символы и подстроки в Java</h2>
11 <p>Чтобы извлечь символы по индексу, в классе String есть метод char charAt(int index). Этот метод принимает индекс, по которому необходимо получить символы, возвращая извлеченный символ:</p>
11 <p>Чтобы извлечь символы по индексу, в классе String есть метод char charAt(int index). Этот метод принимает индекс, по которому необходимо получить символы, возвращая извлеченный символ:</p>
12 String str = "Java"; char c = str.charAt(2); System.out.println(c); // v<p>Обратите внимание, что индексация начинается с нуля, впрочем, как и в массивах. Если же нужно извлечь сразу группу символов либо подстроку, подойдёт getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin). Этот метод принимает ряд параметров: • srcBegin: индекс в нашей строке, с которого осуществляется начало извлечения символов; • srcEnd: индекс в нашей строке, до которого осуществляется извлечение символов; • dst: массив символов (именно в него будут эти символы извлекаться); • dstBegin: индекс в массиве dst (с него надо добавлять символы, извлечённые из строки).</p>
12 String str = "Java"; char c = str.charAt(2); System.out.println(c); // v<p>Обратите внимание, что индексация начинается с нуля, впрочем, как и в массивах. Если же нужно извлечь сразу группу символов либо подстроку, подойдёт getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin). Этот метод принимает ряд параметров: • srcBegin: индекс в нашей строке, с которого осуществляется начало извлечения символов; • srcEnd: индекс в нашей строке, до которого осуществляется извлечение символов; • dst: массив символов (именно в него будут эти символы извлекаться); • dstBegin: индекс в массиве dst (с него надо добавлять символы, извлечённые из строки).</p>
13 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<h2>Сравниваем строки в Java</h2>
13 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<h2>Сравниваем строки в Java</h2>
14 <p>Мы уже писали о том,<a>как сравнивать строки в Java</a>, используя для этого метод equals() (регистр учитывается) и equalsIgnoreCase() (регистр не учитывается). Хотелось бы сказать пару слов про ещё одну пару методов: int compareTo(String str) и int compareToIgnoreCase(String str) - они позволяют не только сравнить 2 строки, но и узнать, больше ли одна другой. Если значение, которое возвращается, больше 0, первая строка больше, если меньше нуля, всё наоборот. Когда обе строки равны, вернётся ноль.</p>
14 <p>Мы уже писали о том,<a>как сравнивать строки в Java</a>, используя для этого метод equals() (регистр учитывается) и equalsIgnoreCase() (регистр не учитывается). Хотелось бы сказать пару слов про ещё одну пару методов: int compareTo(String str) и int compareToIgnoreCase(String str) - они позволяют не только сравнить 2 строки, но и узнать, больше ли одна другой. Если значение, которое возвращается, больше 0, первая строка больше, если меньше нуля, всё наоборот. Когда обе строки равны, вернётся ноль.</p>
15 <p>Для определения используется лексикографический порядок. Допустим, строка "A" меньше строки "B", ведь символ 'A' в алфавите находится перед символом 'B'. Когда первые символы строк равны, в расчёт берутся следующие символы. К примеру:</p>
15 <p>Для определения используется лексикографический порядок. Допустим, строка "A" меньше строки "B", ведь символ 'A' в алфавите находится перед символом 'B'. Когда первые символы строк равны, в расчёт берутся следующие символы. К примеру:</p>
16 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<h2>Поиск в строке в Java</h2>
16 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<h2>Поиск в строке в Java</h2>
17 <p>Чтобы найти индекс первого вхождения подстроки в строку, используют метод indexOf(), последнего - метод lastIndexOf(). Если подстрока не найдена, оба метода вернут -1:</p>
17 <p>Чтобы найти индекс первого вхождения подстроки в строку, используют метод indexOf(), последнего - метод lastIndexOf(). Если подстрока не найдена, оба метода вернут -1:</p>
18 String str = "Hello world"; int index1 = str.indexOf('l'); // 2 int index2 = str.indexOf("wo"); //6 int index3 = str.lastIndexOf('l'); //9<p>Чтобы определить, начинается строка с определённой подстроки, применяют метод startsWith(). Что касается метода endsWith(), то он даёт возможность определить оканчивается ли строка на определенную подстроку:</p>
18 String str = "Hello world"; int index1 = str.indexOf('l'); // 2 int index2 = str.indexOf("wo"); //6 int index3 = str.lastIndexOf('l'); //9<p>Чтобы определить, начинается строка с определённой подстроки, применяют метод startsWith(). Что касается метода endsWith(), то он даёт возможность определить оканчивается ли строка на определенную подстроку:</p>
19 String str = "myfile.exe"; boolean start = str.startsWith("my"); //true boolean end = str.endsWith("exe"); //true<h2>Выполняем замену в строке в Java</h2>
19 String str = "myfile.exe"; boolean start = str.startsWith("my"); //true boolean end = str.endsWith("exe"); //true<h2>Выполняем замену в строке в Java</h2>
20 <p>Заменить в нашей строке одну последовательность символов другой можно с помощью метода replace():</p>
20 <p>Заменить в нашей строке одну последовательность символов другой можно с помощью метода replace():</p>
21 String str = "Hello world"; String replStr1 = str.replace('l', 'd'); // Heddo wordd String replStr2 = str.replace("Hello", "Bye"); // Bye world<h2>Обрезаем строки в Java</h2>
21 String str = "Hello world"; String replStr1 = str.replace('l', 'd'); // Heddo wordd String replStr2 = str.replace("Hello", "Bye"); // Bye world<h2>Обрезаем строки в Java</h2>
22 <p>Для удаления начальных и конечных пробелов применяют метод trim():</p>
22 <p>Для удаления начальных и конечных пробелов применяют метод trim():</p>
23 String str = " hello world "; str = str.trim(); // hello world<p>Также существует метод substring() - он возвращает подстроку, делая это с какого-нибудь конкретного индекса до конца либо до определённого индекса:</p>
23 String str = " hello world "; str = str.trim(); // hello world<p>Также существует метод substring() - он возвращает подстроку, делая это с какого-нибудь конкретного индекса до конца либо до определённого индекса:</p>
24 String str = "Hello world"; String substr1 = str.substring(6); // world String substr2 = str.substring(3,5); //lo<h2>Меняем регистр в Java</h2>
24 String str = "Hello world"; String substr1 = str.substring(6); // world String substr2 = str.substring(3,5); //lo<h2>Меняем регистр в Java</h2>
25 <p>При необходимости вы можете перевести все символы вашей строки в нижний регистр (toLowerCase()) или в верхний (toUpperCase()):</p>
25 <p>При необходимости вы можете перевести все символы вашей строки в нижний регистр (toLowerCase()) или в верхний (toUpperCase()):</p>
26 String str = "Hello World"; System.out.println(str.toLowerCase()); // hello world System.out.println(str.toUpperCase()); // HELLO WORLD<h2>Split</h2>
26 String str = "Hello World"; System.out.println(str.toLowerCase()); // hello world System.out.println(str.toUpperCase()); // HELLO WORLD<h2>Split</h2>
27 <p>С помощью этого метода вы сможете разбить строку на подстроки по конкретному разделителю. Под разделителем понимается какой-либо символ либо набор символов, передаваемые в метод в качестве параметра. Давайте для примера разобьём небольшой текст на отдельные слова:</p>
27 <p>С помощью этого метода вы сможете разбить строку на подстроки по конкретному разделителю. Под разделителем понимается какой-либо символ либо набор символов, передаваемые в метод в качестве параметра. Давайте для примера разобьём небольшой текст на отдельные слова:</p>
28 String text = "OTUS is a good company"; String[] words = text.split(" "); for(String word : words){ System.out.println(word); }<p>В нашем случае строка разделится по пробелу, и мы получим следующий консольный вывод:</p>
28 String text = "OTUS is a good company"; String[] words = text.split(" "); for(String word : words){ System.out.println(word); }<p>В нашем случае строка разделится по пробелу, и мы получим следующий консольный вывод:</p>
29 <p>Вот и всё! Узнать больше всегда можно на наших курсах:<a></a></p>
29 <p>Вот и всё! Узнать больше всегда можно на наших курсах:<a></a></p>
30 <p>При написании статьи использовались материалы: 1.<a>"Java-примеры: найти последнее вхождение подстроки в строке"</a>. 2.<a>"Основные операции со строками"</a>.</p>
30 <p>При написании статьи использовались материалы: 1.<a>"Java-примеры: найти последнее вхождение подстроки в строке"</a>. 2.<a>"Основные операции со строками"</a>.</p>
31  
31