Напишите программу которая проверяет является ли строка палиндромом java

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

courses / csc-java / week_02 / palindrome / Palindrome.java /

Code definitions
Code navigation index up-to-date

  • Go to file T
  • Go to line L
  • Go to definition R
  • Copy path
  • Copy permalink

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Cannot retrieve contributors at this time
26 lines (24 sloc) 2.61 KB

  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents Copy raw contents

Copy raw contents

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

Java урок — 9.4 Рекурсия. Задача палиндрома

  • Copy lines
  • Copy permalink
  • View git blame
  • Reference in new issue

Источник: github.com

Является ли строка палиндромом

Палиндром – это слово-перевёртыш, которое читается одинаково слева направо и справа налево. В данной статье мы рассмотрим, как с помощью стандартного JavaSE можно проверить, является ли строка палиндромом.

Проверка строки на палиндромность

Вот простейший код, который позволяет выяснить, является ли заданная строка палиндромом. Этот метод не является null-safe и, возможно, вы захотите добавить проверку параметра str на null.

Читайте также:
Программа ispy системные требования

public static boolean isPalindrome(String str)

С помощью конструкции new StringBuffer(str).reverse().toString() мы формируем инвертированную строку, а затем с помощью метода equalsIgnoreCase сверяем её с изначальной строкой, игнорируя регистр букв.

Исходный код

public class IsStringPalindrome < public static void main(String[] args) < System.out.println(isPalindrome(«шалаш»)); // true System.out.println(isPalindrome(«ротор»)); // true System.out.println(isPalindrome(«мотор»)); // false >public static boolean isPalindrome(String str) < return str.equalsIgnoreCase(new StringBuffer(str).reverse().toString()); >>

Заключение

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

Является ли строка палиндромом

  • ← Как удалить последний символ в строке
  • Проверка версии Java →

Источник: java-lessons.ru

Решаем задачи по Java. Задача №3. Палиндром.

Два дня решал задачу по Spring -у. Через боль, пот и кровь, но всё-таки добил её. Очень интересный framework, но после кора, совсем непонятный).

Java — Практика (Полиндром строки)

И чтобы разбавить это дело, поговорим сегодня об одной, очень интересной задачке. А именно, о проверке, является ли текст палиндромом? Далеко ходить не будем, условие:

Реализуйте метод, проверяющий, является ли переданная строка палиндромом. При определении «палиндромности», должны учитываться только цифры и буквы. Всё остальное (пробелы, регистр, знаки препинания и т.п.) должно игнорироваться. Гарантируется, что будет использоваться только латинские буквы, цифры и знаки препинания.

У этой задачи есть отличное, красивое решение через stream . Но о них мы еще не говорили, поэтому попытаемся её решить используя несколько стандартных методов и классов. А именно:

1. StringBuilder

2. replaceAll

3. reverse()

4. equalsIgnoreCase

Но для начала, давайте уясним для себя, что такое палиндром. Для любителей официальных формулировок вот ссылка на википедию. Для тех кто уже посмотрел фильм Довод , будет более-менее понятно. Там весь фильм это сплошной палиндром. Короче говоря палиндром, это слово/текст, которые читается одинаково и слева направо и наоборот. Например: довод. 🙂

Читайте также:
Программа которая переводит программы с одного языка на другой

Перед тем как начать выполнять задачу, давайте подумаем в голове, что мы должны сделать. Метод возвращает булевское значение, получается, нам нужно что-то сравнить.

На вход нам идет одна лишь строка. Что с чем сравнивать то?

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

Итак, давайте теперь разбираться. Для начала, нам нужно избавиться от лишнего в тексте и оставить лишь буквы и цифры. В этом нам помогут регулярные выражения и метод replaceAll . Вот необходимая информация для изучения: replaceAll , регулярные выражения.

Подсказка: есть специальное регулярное выражение, которое «вырезает» всё кроме цифр и букв: «[^a-zA-Z0-9]».

Ок, с первым заданием справились. Теперь мы имеем строку с набором символов и чисел.

Теперь про «перевернуть». Тут конечно же нам нужен метод reverse() . Читаем . Стоит отметить, что данный метода работает только на объектах StringBuffer и StringBuilder . Читаем собственно и о них тоже. Вот .

Получается, чтобы провернуть все вышеуказанные операции, нам необходимо создать новый объект StringBuilder , в качестве параметров засунуть в него нашу строку. Причем вырезать лишнее можно там же, в параметрах. Далее на этом объекте мы применяем reverse() — переворачиваем строку, и засовываем всё это в переменную String.

Всё бы было хорошо, но мы не можем засунуть StringBuilder в String . Это разные классы. Поэтому в конце мы должны применить метод toString . И будет нам счастье.

На выходе мы имеем переменную типа String , в которой наш измененный как нам надо и перевернутый в обратную сторону текст. Осталось самую малость: сравнить его с изначальным, но обрезанным, текстом. Думаю тут проблем не будет.

Читайте также:
Какие из перечисленных ниже программ не являются прикладными

Берем нашу переданную в параметры строку, вырезаем известным нам способом всё лишнее, сравниваем с переменной в которой лежит «обратный» текст. Возвращаем всё это.

Единственное, что мы забыли, что нам необходимо игнорировать регистр. Тут можно было конечно все строки привести к единому регистру, но зачем, когда есть отличный метод equalsIgnoreCase . Читаем.

Ну вот и всё. Очередная задача покорена 🙂

Источник: dzen.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru