Java string содержит ли буквы

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 узнать присутствует ли данный символ или слово в строке.

Результат

Получим следующий результат:

Слово "программист" есть в строке 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
Читайте также:  Конфигурирование php в nginx

Источник

Ищем символы в строке Java

В этой статье мы рассмотрим, как выполнять поиск букв и других символов в строке Java, а также как проверять, находится ли нужный символ, буква или слово в строке, начиная с указанного индекса.

Строкой в Java называют упорядоченную последовательность символов. Как правило строка в Java — это один из основных носителей текстовой информации.

Для работы со строками в Java применяют классы String, StringBuilder и StringBuffer. Класс String включает методы, возвращающие позицию символа либо подстроки в строке: — indexOf() — для поиска с начала строки; — lastIndexOf() — для выполнения поиска с конца строки.

Таким образом, если метод indexOf() найдёт заданную букву, символ либо строку, он вернёт индекс, то есть порядковый номер. Если не найдёт, будет возвращено -1. Также он позволяет искать символ или букву, начиная с указанного индекса.

Кроме того, стоит добавить, что класс String включает в себя ещё и метод contains, возвращающий true, когда в строке содержится заданная последовательность символов. Этот метод рекомендуется использовать лишь тогда, когда вам просто нужно узнать о существовании подстроки в строке, при этом позиция не имеет значения.

Метод indexOf()

 
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);

Представьте, что нам нужно отыскать в строке индекс первого вхождения требуемого символа/буквы, а также нужного слова. Как уже было сказано выше, метод indexOf() вернёт нам индекс первого вхождения, а в случае неудачи — вернёт -1.

Посмотрите на следующий код:

 
public class Main < public static void main(String[] args) < String str = "Otus — онлайн-образование"; int indexM = str.indexOf("з"); // Ищем символ в строке int indexJava = str.indexOf("онлайн"); // Ищем слово в строке if(indexM == - 1) < System.out.println("Символ \"з\" не найден."); >else < System.out.println("Символ \"з\" найден, его индекс: " + indexM); >if(indexJava == - 1) < System.out.println("Слово \"онлайн\" не найдено."); >else < System.out.println("Слово \"онлайн\" найдено, его индекс: " + indexJava); >> >

Результат получим следующий:

 
Символ "з" найден, его индекс: 18 Слово "онлайн" найдено, его индекс: 7

Метод contains

Бывают ситуации, когда нам необходимо проверить, содержит ли наша строка конкретный символ/букву либо слово. Нижеследующий Java-код продемонстрирует и этот пример:

В этом случае результат будет следующим:

 
Слово "Otus" есть в строке str? Ответ: true Символ "z" присутствует в строке str? Ответ: false

Как видите, выполнять поиск букв и других символов в строке Java совсем несложно, и наши элементарные примеры убедительно это подтверждают. Если же вы хотите получить более продвинутые навыки по Java-разработке, добро пожаловать на наш курс:

Источник

Проверьте, Содержит Ли Строка Все Буквы алфавита с помощью Java

Краткое руководство по проверке того, содержит ли текст все буквы алфавита.

1. Обзор

В этом уроке мы увидим, как проверить, содержит ли строка все буквы алфавита или нет.

Вот краткий пример: ” Фермер Джек понял, что большие желтые одеяла стоят дорого. ” – который на самом деле содержит все буквы алфавита.

Сначала мы смоделируем алгоритм, используя императивный подход. Затем будут использоваться регулярные выражения. И, наконец, мы воспользуемся более декларативным подходом с использованием Java 8.

Кроме того, мы обсудим Большую сложность принятых подходов.

2. Императивный алгоритм

Давайте реализуем императивный алгоритм. Для этого сначала создадим логический массив visited. Затем мы пройдем через входную строку символ за символом и пометим символ как посещенный.

Обратите внимание, что Верхний регистр и Нижний регистр считаются одинаковыми. Таким образом, индекс 0 представляет и А, и а, аналогично, индекс 25 представляет и Z, и z.

Наконец, мы проверим, все ли символы в посещенном массиве имеют значение true:

public class EnglishAlphabetLetters < public static boolean checkStringForAllTheLetters(String input) < int index = 0; boolean[] visited = new boolean[26]; for (int id < input.length(); id++) < if ('a' else if ('A' visited[index] = true; > for (int id < 26; id++) < if (!visited[id]) < return false; >> return true; > >

Big-O-сложность этой программы равна O(n), где n – длина строки.

Обратите внимание, что существует множество способов оптимизации алгоритма, таких как удаление букв из набора и разрыв, как только Set пуст. Однако для целей упражнения этот алгоритм достаточно хорош.

3. Использование Регулярного Выражения

Используя регулярное выражение, мы можем легко получить те же результаты с помощью нескольких строк кода:

public static boolean checkStringForAllLetterUsingRegex(String input)

Здесь мы сначала исключаем все символы, кроме букв алфавита, из ввода . Затем мы удаляем дубликаты символов. Наконец, мы считаем буквы и убеждаемся, что у нас есть все, 26.

Несмотря на меньшую производительность, Большая сложность этого подхода также имеет тенденцию к O(n).

4. Поток Java 8

Используя функции Java 8, мы можем легко достичь того же результата более компактным и декларативным способом, используя методы Stream filter и distinct :

public static boolean checkStringForAllLetterUsingStream(String input) < long c = input.toLowerCase().chars() .filter(ch ->ch >= 'a' && ch

Большая-O-сложность этого подхода также будет O(n).

4. Тестирование

Давайте проверим счастливый путь для нашего алгоритма:

@Test public void givenString_whenContainsAllCharacter_thenTrue()

Здесь предложение содержит все буквы алфавита, следовательно, мы ожидаем true в результате.

5. Заключение

В этом уроке мы рассмотрели, как проверить, содержит ли строка все буквы алфавита .

Сначала мы увидели несколько способов реализовать это с помощью традиционного императивного программирования, регулярных выражений и потоков Java 8.

Полный исходный код доступен на GitHub .

Читайте ещё по теме:

Источник

Проверьте, содержит ли строка все буквы алфавита

Вот быстрый пример: «Farmer jack realized that big yellow quilts were expensive.», который действительно содержит все буквы алфавита.

Сначала мы смоделируем алгоритм, используя императивный подход. Затем будем использовать регулярные выражения. И, наконец, мы воспользуемся преимуществами более декларативного подхода с использованием Java 8.

Кроме того, мы обсудим сложность принятых подходов.

2. Императивный алгоритм

Давайте реализуем императивный алгоритм. Для этого сначала мы создадим логический массив посещенных. Затем мы пройдемся по входной строке посимвольно и пометим символ как посещенный.

Обратите внимание, чтоUppercase иLowercase считаются одинаковыми. Таким образом, индекс 0 представляет как A, так и a, аналогично, индекс 25 представляет как Z, так и z.

Наконец, мы проверим, все ли символы в посещенном массиве имеют значение true:

public class EnglishAlphabetLetters < public static boolean checkStringForAllTheLetters(String input) < int index = 0; boolean[] visited = new boolean[26]; for (int id < input.length(); id++) < if ('a' else if ('A' visited[index] = true; > for (int id < 26; id++) < if (!visited[id]) < return false; >> return true; > >

Сложность этой программы составляет O (n), гдеn - длина строки.

Обратите внимание, что есть много способов оптимизировать алгоритм, например, удаление букв из набора и прерывание, как толькоSet станет пустым. Однако для целей упражнения этот алгоритм достаточно хорош.

3. Использование регулярного выражения

Используя регулярные выражения, мы можем легко получить те же результаты с помощью нескольких строк кода:

public static boolean checkStringForAllLetterUsingRegex(String input)

Здесь мы сначала удаляем все символы, кроме букв алфавита, изinput. Затем мы удаляем дубликаты символов. Наконец, мы считаем буквы и следим за тем, чтобы у нас их было все 26.

Хотя Big-O-Complexity этого подхода менее производительный, он также имеет тенденцию к O (n).

4. Java 8 Stream

Используя функции Java 8, мы можем легко достичь того же результата более компактным и декларативным способом, используя методы Streamfilter anddistinct:

public static boolean checkStringForAllLetterUsingStream(String input) < long c = input.toLowerCase().chars() .filter(ch ->ch >= 'a' && ch

Big-O-сложность этого подхода также будет O (n).

4. тестирование

Давайте проверим удачный путь для нашего алгоритма:

@Test public void givenString_whenContainsAllCharacter_thenTrue()

Здесьsentence содержит все буквы алфавита, поэтому в результате мы ожидаемtrue.

5. Заключение

В этом руководстве мы рассказали, как проверить, содержит ли строка все буквы алфавита. .

Мы увидели несколько способов реализовать это сначала, используя традиционное императивное программирование, регулярные выражения и потоки Java 8.

Доступен полный исходный кодover on GitHub.

Источник

Оцените статью