3.6. Java примеры – Нахождение символа или слова в строке
Решение 1: когда нужно найти индекс первого вхождения
Следующий пример показывает как найти символ или слово в строке в Java с помощью метода indexOf(). Метод вернет индекс первого вхождения, если символ или слово не будет найдено, то метод вернет -1.
public class Example < public static void main(String[] args) < String str = "Привет, java-программист!"; int indexM = str.indexOf("м"); // Нахождение символа в строке int indexJava = str.indexOf("java"); // Нахождение слова в строке if(indexM == - 1) < System.out.println("Символ \"м\" не найден."); >else < System.out.println("Символ \"м\" найден в индексе " + indexM); >if(indexJava == - 1) < System.out.println("Слово \"java\" не найдено."); >else < System.out.println("Слово \"java\" найдено в индексе " + indexJava); >> >
Результат
Получим следующий результат:
Символ "м" найден в индексе 19 Слово "java" найдено в индексе 8
Решение 2: когда нужно узнать есть ли в строке данный символ или слово
Ниже продемонстрирован пример, который позволяет в Java узнать присутствует ли данный символ или слово в строке.
public class Example < public static void main(String[] args) < String str = "Привет, java-программист!"; System.out.println("Слово \"программист\" есть в строке str? Ответ: " + str.contains("программист")); System.out.println("Символ \"б\" присутствует в строке str? Ответ: " + str.contains("б")); >>
Результат
Получим следующий результат:
Слово "программист" есть в строке str? Ответ: true Символ "б" присутствует в строке str? Ответ: false
Оглавление
- 1. Java примеры – Использование кода на практике
- 2. Java примеры – Окружающая среда
- 2.1. Java примеры – Скомпилировать файл
- 2.2. Java примеры – Установить путь к нескольким классам
- 2.3. Java примеры – Отладка java-файла
- 2.4. Java примеры – Установить путь к классу
- 2.5. Java примеры – Просмотреть текущий путь класса
- 2.6. Java примеры – Установить назначение файла класса
- 2.7. Java примеры – Запустить скомпилированный java-файл класса
- 2.8. Java примеры – Узнать версию Java
- 2.9. Java примеры – Установить путь к классу в .jar-файле или .zip-файле
- 3. Java примеры – Строки
- 3.1. Java примеры – Сравнить две строки
- 3.2. Java примеры – Найти последнее вхождение подстроки внутри подстроки
- 3.3. Java примеры – Удалить нужный символ из строки
- 3.4. Java примеры – Заменить символ в строке
- 3.5. Java примеры – Вывод в обратном порядке
- 3.6. Java примеры – Нахождение символа или слова в строке
- 3.7. Java примеры – Разбиение строки на слова и символы
- 3.8. Java примеры – Преобразование строки в верхний регистр
- 3.9. Java примеры – Найти слово в строке
- 3.10. Java примеры – Сравнить производительность создания строки
- 3.11. Java примеры – Оптимизировать создание строк
- 3.12. Java примеры – Форматирование строк
- 3.13. Java примеры – Конкатенация строк
- 3.14. Java примеры – Определить код Юникода символа в строке
- 3.15. Java примеры – Буферизация строк
- 4. Java примеры – Массивы
- 4.1. Java примеры – Сортировка массива и поиск элемента
- 4.2. Java примеры – Метод сортировки массива, вставить элемент в массив
- 4.3. Java примеры – Размер двумерного массива
- 4.4. Java примеры – Обратный порядок массива, переворачиваем массив
- 4.5. Java примеры – Как выводить массивы и двумерные массивы в консоль
- 4.6. Java примеры – Найти максимальный и минимальный элемент массива
- 4.7. Java примеры – Соединить два массива в один
- 4.8. Java примеры – Как заполнить массив числами
- 4.9. Java примеры – Увеличить массив после инициализации
- 4.10. Java примеры – Сравнение двух массивов
- 4.11. Java примеры – Удаление элемента из массива
- 4.12. Java примеры – Удаление массива из другого массива
- 4.13. Java примеры – Одинаковые элементы массивов
- 4.14. Java примеры – Поиск в массиве
- 4.15. Java примеры – Равенство двух массивов
- 4.16. Java примеры – Сравнить массивы
- 5. Java примеры – Дата и время
- 5.1. Java примеры – Форматирование времени в формате AM-PM
- 5.2. Java примеры – Получение названия и номера текущего месяца
- 5.3. Java примеры – Получить текущее время в часах и минутах
- 5.4. Java примеры – Вывести текущее время и дату
- 5.5. Java примеры – Вывести текущее время в 24-часовом формате
- 5.6. Java примеры – Получить текущий месяц
- 5.7. Java примеры – Получить текущие секунды
- 5.8. Java примеры – Получить короткое название месяца
- 5.9. Java примеры – Получить день недели
- 5.10. Java примеры – Добавление времени к дате
- 5.11. Java примеры – Отображение времени в формате другой страны
- 5.12. Java примеры – Отображение времени на разных языках
- 5.13. Java примеры – Прокрутить часы и месяцы
- 5.14. Java примеры – Получить номер недели и месяц в году
- 5.15. Java примеры – Форматы текущей даты
- 6. Java примеры – Методы
- 6.1. Java примеры – Перезагрузка методов
- 6.2. Java примеры – Вывод массива с использованием метода
- 6.3. Java примеры – Решение Ханойской башни
- 6.4. Java примеры – Последовательность чисел Фибоначчи
- 6.5. Java примеры – Вычисление факториала числа
- 6.6. Java примеры – Переопределение метода
- 6.7. Java примеры – Вывод массива с использованием метода
- 6.8. Java примеры – Использование оператора break
- 6.9. Java примеры – Использование оператора continue
- 6.10. Java примеры – Использование метки в методе
- 6.11. Java примеры – Использование операторов enum и switch
- 6.12. Java примеры – Использование конструктора enum
Проверьте, появляется ли определенный символ в строке в Java
В этом посте будет обсуждаться, как проверить, появляется ли определенный символ в строке в Java.
Чтобы проверить, появляется ли определенный символ в строке в Java, мы можем использовать один из следующих методов:
1. Использование String.indexOf() метод
Простое решение — использовать indexOf() метод String сорт. Этот метод возвращает индекс первого вхождения указанного символа в строке или -1 если такой символ не встречается. Мы можем сравнить его возвращаемое значение с -1 чтобы определить, появляется ли конкретный символ в строке. Например, чтобы проверить, является ли символ ‘a’ появляется в строке «Java» , мы можем написать:
public class Main
public static void main ( String [ ] args ) <
String str = "Java" ;
boolean isCharExist = str . indexOf ( c ) != - 1 ;
if ( isCharExist ) <
System . out . println ( "Character appears in string" ) ;
System . out . println ( "Character does not appear in string" ) ;
2. Использование String.contains() метод
Другим вариантом является использование contains() метод String сорт. Этот метод проверяет, содержит ли строка указанную последовательность символов. Этот метод возвращает true если последовательность присутствует, в противном случае false . Поскольку contains() принимает последовательность строк для поиска. Чтобы проверить, появляется ли в строке один символ, нам нужно сначала преобразовать символ в строку, используя метод String.valueOf() метод. Вот пример кода, который демонстрирует это:
public class Main
public static void main ( String [ ] args ) <
String str = "Java" ;
boolean isCharExist = str . contains ( String . valueOf ( c ) ) ;
if ( isCharExist ) <
System . out . println ( "Character appears in string" ) ;
System . out . println ( "Character does not appear in string" ) ;
3. Использование регулярных выражений
Регулярное выражение — это последовательность символов, определяющая шаблон поиска. Мы можем использовать matches() метод String класс, чтобы проверить, соответствует ли строка заданному регулярному выражению. Чтобы проверить, присутствует ли в строке определенный символ, мы можем использовать класс символов, содержащий только этот символ. Например, чтобы проверить, является ли символ ‘a’ появляется в строке «Java» , мы можем использовать регулярное выражение .*[a].* . Здесь, .* означает ноль или более любого символа, а [a] означает ровно один ‘a’ персонаж.
Как найти символ в строке java
String У class есть много методов для того, чтобы исследовать содержание строк, находя символы или подстроки в пределах строки, изменяя случай, и другие задачи.
Получение Символов и Подстрок Индексирует
Можно добраться, символ в детали индексируют в пределах строки, вызывая charAt() метод средства доступа. Индексирование первого символа 0, в то время как индексирование последнего знака length()-1 . Например, следующий код добирается, символ в индексируют 9 в строке:
String anotherPalindrome = "Niagara. O roar again!"; char aChar = anotherPalindrome.charAt(9);
Индексы начинаются в 0, таким образом, символ в индексирует 9, ‘O’, как иллюстрировано в следующем числе:
Если Вы хотите получить больше чем один последовательный символ от строки, можно использовать substring метод. substring у метода есть две версии, как показано в следующей таблице:
| Метод | Описание |
|---|---|
| String substring(int beginIndex, int endIndex) | Возвращает новую строку, которая является подстрокой этой строки. Первый целочисленный параметр определяет индексирование первого символа. Вторым целочисленным параметром является индексирование последнего знака — 1. |
| String substring(int beginIndex) | Возвращает новую строку, которая является подстрокой этой строки. Целочисленный параметр определяет индексирование первого символа. Здесь, возвращенная подстрока расширяется до конца исходной строки. |
Следующий код получает от Ниагарского палиндрома подстроку, которая расширяется от, индексируют 11 до, но не включая, индексируют 15, который является словом «рев»:
String anotherPalindrome = "Niagara. O roar again!"; String roar = anotherPalindrome.substring(11, 15);
Другие Методы для Управления Строками
Вот несколько другие String методы для того, чтобы управлять строками:
| Метод | Описание |
|---|---|
| String[] split(String regex) String[] split(String regex, int limit) |
Поиски соответствия как определено строковым параметром (который содержит регулярное выражение) и разделяют эту строку на массив строк соответственно. Дополнительный целочисленный параметр определяет максимальный размер возвращенного массива. Регулярные выражения покрываются уроком, названным «Регулярные выражения.» |
| CharSequence subSequence(int beginIndex, int endIndex) | Возвращает новую символьную последовательность, созданную из beginIndex индексируйте вплоть до endIndex — 1. |
| String trim() | Возвращает копию этой строки с продвижением и запаздывающим удаленным пробелом. |
| String toLowerCase() String toUpperCase() |
Возвращает копию этой строки, преобразованной в строчный или верхний регистр. Если никакие преобразования не необходимы, эти методы возвращают исходную строку. |
Поиск Символов и Подстрок в Строке
Вот некоторый другой String методы для того, чтобы найти символы или подстроки в пределах строки. String class обеспечивает методы средства доступа, которые возвращают позицию в пределах строки определенного символа или подстроки: indexOf() и lastIndexOf() . indexOf() методы ищут вперед от начала строки, и lastIndexOf() методы ищут назад от конца строки. Если символ или подстрока не находятся, indexOf() и lastIndexOf() возвратитесь-1.
String class также обеспечивает метод поиска, contains , это возвращает true, если строка содержит определенную символьную последовательность. Используйте этот метод, когда Вы только должны знать, что строка содержит символьную последовательность, но точное расположение не важно.
Следующая таблица описывает различные методы поиска строки.
| Метод | Описание |
|---|---|
| int indexOf(int ch) int lastIndexOf(int ch) |
Возвращает индексирование первого (последнего) возникновения указанного символа. |
| int indexOf(int ch, int fromIndex) int lastIndexOf(int ch, int fromIndex) |
Возвращает индексирование первого (последнего) возникновения указанного символа, ища вперед (назад) от указанного индексирует. |
| int indexOf(String str) int lastIndexOf(String str) |
Возвращает индексирование первого (последнего) возникновения указанной подстроки. |
| int indexOf(String str, int fromIndex) int lastIndexOf(String str, int fromIndex) |
Возвращает индексирование первого (последнего) возникновения указанной подстроки, ища вперед (назад) от указанного индексирует. |
| boolean contains(CharSequence s) | Возвращает true, если строка содержит указанную символьную последовательность. |
Отметьте: CharSequence интерфейс, который реализуется String class. Поэтому, можно использовать строку в качестве параметра за contains() метод.
Замена Символов и Подстрок в Строку
String У class есть очень немного методов для того, чтобы вставить символы или подстроки в строку. Вообще, они не необходимы: можно создать новую строку связью подстрок, которые Вы удалили из строки с подстрокой, которую Вы хотите вставить.
String У class действительно есть четыре метода для того, чтобы заменить найденный символами или подстроками, как бы то ни было. Они:
| Метод | Описание |
|---|---|
| String replace(char oldChar, char newChar) | Возвращает новую строку, следующую из замены всех возникновений oldChar в этой строке с newChar. |
| String replace(CharSequence target, CharSequence replacement) | Замены каждая подстрока этой строки, которая соответствует литеральную целевую последовательность с указанной литеральной заменяющей последовательностью. |
| String replaceAll(String regex, String replacement) | Замены каждая подстрока этой строки, которая соответствует данное регулярное выражение с данной заменой. |
| String replaceFirst(String regex, String replacement) | Заменяет первую подстроку этой строки, которая соответствует данное регулярное выражение с данной заменой. |
Пример
Следующий class, Filename , иллюстрирует использование lastIndexOf() и substring() изолировать различные части имени файла.
Отметьте: методы в следующем Filename class не делает никакой проверки на ошибки и предполагает, что их параметр содержит полный путь к каталогу и имя файла с расширением. Если бы эти методы были производственным кодом, то они проверили бы, что их параметры были должным образом созданы.
public class Filename < private String fullPath; private char pathSeparator, extensionSeparator; public Filename(String str, char sep, char ext) < fullPath = str; pathSeparator = sep; extensionSeparator = ext; >public String extension() < int dot = fullPath.lastIndexOf(extensionSeparator); return fullPath.substring(dot + 1); >// gets filename without extension public String filename() < int dot = fullPath.lastIndexOf(extensionSeparator); int sep = fullPath.lastIndexOf(pathSeparator); return fullPath.substring(sep + 1, dot); >public String path() < int sep = fullPath.lastIndexOf(pathSeparator); return fullPath.substring(0, sep); >>
Вот программа, FilenameDemo , это создает a Filename объект и вызовы все его методы:
public class FilenameDemo < public static void main(String[] args) < final String FPATH = "/home/user/index.html"; Filename myHomePage = new Filename(FPATH, '/', '.'); System.out.println("Extension = " + myHomePage.extension()); System.out.println("Filename = " + myHomePage.filename()); System.out.println("Path = " + myHomePage.path()); >>
И вот вывод из программы:
Extension = html Filename = index Path = /home/user
Как показано в следующем числе, нашем extension использование метода lastIndexOf определять местоположение последнего вхождения периода (.) в имени файла. Затем substring использует возвращаемое значение lastIndexOf извлечь расширение файла — то есть, подстрока с периода до конца строки. Этот код предполагает, что у имени файла есть период в нем; если у имени файла нет периода, lastIndexOf возвраты-1, и метод подстроки бросают a StringIndexOutOfBoundsException .
Кроме того, заметьте что extension использование метода dot + 1 как параметр substring . Если символ точки(.) является последним знаком строки, dot + 1 равно длине строки, которая является одним большим, чем самые большие индексируют в строку (потому что индексы запускаются в 0). Это — юридический параметр substring потому что тот метод принимает индексирование равного, но не больше чем, длина строки и интерпретирует это, чтобы означать «конец строки.»
Ваше использование этой страницы и всего материала на страницах под «Учебным баннером» Java подвергается этим официальным уведомлениям.
Авторское право © 1995, 2012 Oracle и/или его филиалы. Все права защищены.
Предыдущая страница: Преобразование Между Числами и Строками
Следующая страница: Сравнение Строк и Частей Строк
indexOf() в Java — найти в строке символ и его индекс
Метод indexOf() ищет в строке заданный символ или строку, и их возвращает индекс (т.е. порядковый номер). Метод:
- возвращает индекс, под которым символ или строка первый раз появляется в строке;
- возвращает (-1) если символ или строка не найдены.
Метод также может искать символ или строку, начиная с указанного индекса.
Библиотека:
Java . lang . String
Синтаксис метода:
public int indexOf ( char ch )
public int indexOf ( char ch , int fromIndex )
public int indexOf ( String s )
public int indexOf ( String s , int fromIndex )
Вызов:
int index = str1 . indexOf ( myChar ) ;
int index = str1 . indexOf ( myChar , start ) ;
int index = str1 . indexOf ( myString ) ;
int index = str1 . indexOf ( myString , start ) ;
Пример 1:
public class Test < public static void main ( String args [ ] ) < String hello = "Hello" ; int index1 = hello . indexOf ( 'H' ) ; int index2 = hello . indexOf ( 'o' ) ; int index3 = hello . indexOf ( 'W' ) ;
System . out . println ( «Мы ищем букву ‘H’ в строке » + hello + «. Индекс данной буквы » + index1 ) ;
System . out . println ( «Мы ищем букву ‘o’ в строке » + hello + «. Индекс данной буквы » + index2 ) ;
System . out . println ( «Мы ищем букву ‘W’ в строке » + hello + «. Индекс данной буквы » + index3 ) ;
Если Вы запустите данный код на своем компьютере, в консоли Вы увидите следующее:

Комментарии к коду:
У нас есть строка «Hello». С помощью метода indexOf мы искали индекс трех символов — ‘H’, ‘o’ и ‘W’.
- Символ ‘H’ стоит первым в строке. indexOf возвращает ноль.
- Символ ‘o’ стоит в конце строки. Получаем его индекс 4.
- Символ ‘W’ не встречается в строке «Hello». Получаем (-1).
Пример 2:
public class Test < public static void main ( String args [ ] ) < String hello = "Hello" ; int index1 = hello . indexOf ( 'H' , 2 ) ; int index2 = hello . indexOf ( 'o' , 2 ) ; int index3 = hello . indexOf ( 'W' , 2 ) ;
System . out . println ( «Мы ищем букву ‘H’ в строке » + hello + » начиная с индекса номер 2. Индекс » + index1 ) ;
System . out . println ( «Мы ищем букву ‘o’ в строке » + hello + » начиная с индекса 2. Индекс » + index2 ) ;
System . out . println ( «Мы ищем букву ‘W’ в строке » + hello + » начиная с индекса 2. Индекс » + index3 ) ;
Если Вы запустите данный код на своем компьютере, в консоли Вы увидите следующее:

Комментарии к коду:
У нас есть строка «Hello». С помощью метода indexOf мы искали индекс трех символов — ‘H’, ‘o’ и ‘W’, но теперь начиная с символа под индексом 2.
- Символ ‘H’ стоит первым в строке. Но так как первые два символа в строке игнорируются, indexOf возвращает -1 («символ не найден»).
- Символ ‘o’ стоит в конце строки. Он находится после второго символа, а значит функция его «видит». Как и в прошлом примере, получаем 4.
- Символ ‘W’ не встречается в строке «Hello». Как и в прошлом примере, получаем (-1).
Пример 3:
public class Test < public static void main ( String args [ ] ) < String gm = "Good morning" ; int index1 = gm . indexOf ( "morni" ) ; int index2 = gm . indexOf ( "Vertex" ) ; int index3 = gm . indexOf ( "Good morning" , - 2 ) ; int index4 = gm . indexOf ( "Good morning" , 2 ) ; int index5 = gm . indexOf ( "Good morning" , 999 ) ; System . out . println ( "Мы ищем 'morni' в строке " + gm + ". Индекс " + index1 ) ; System . out . println ( "Мы ищем 'Vertex' в строке " + gm + ". Индекс " + index2 ) ;
System . out . println ( «Мы ищем ‘Good morning’ в строке » + gm + » начиная с индекса -2. Результат: » + index3 ) ;
System . out . println ( «Мы ищем ‘Good morning’ в строке » + gm + » начиная с индекса 2. Результат: » + index4 ) ;
System . out . println ( «Мы ищем ‘Good morning’ в строке » + gm + » начиная с индекса 888. Результат: » + index5 ) ;
Если Вы запустите данный код на своем компьютере, в консоли Вы увидите следующее:

Комментарии к коду:
Посмотрим, как метод ищет строки. У нас есть переменная «Good morning». В ней мы ищем три подстроки: «morni», «Vertex» и «Good morning».
- «morni» — это часть строки «Good morning». Первый символ найденной подстроки «morni» имеет индекс 5. Поэтому, в консоли получаем 5.
- «Vertex» в строке не встречается. Получаем -1;
- «Good morning» мы ищем три раза.
- Первый раз мы задавали отрицательный индекс (-2). Метод indexOf интерпретирует его как ноль (т.е. «искать с начала строки»). Поэтому, в консоли получаем индекс ноль — начало подстроки совпадает с началом основной строки.
- Во второй раз мы задаем значение 2. Фактически, теперь метод проверяет, встречается ли в строке «od morning» подстрока»Good morning». Нет, не встречается. Получаем (-1) в консоли.
- В третий раз мы задаем значение, которое явно больше длины строки 888. Это как если бы мы искали что-то в пустой строке. Получаем (-1).
Данная статья написана Vertex Academy. Можно пройти наши курсы Java с нуля. Детальнее на сайте.
- ← copyValueOf() в Java — создать строку из массива чаров
- replace() — заменить символ в строке в Java →
