Палиндром в Java — проверка числа и строки с примерами
Палиндром — это слово, число или фраза, которые читаются одинаково слева направо и справа налево. Например, "Radar" или число 3553.
Пример 1: проверка строки на палиндром
Чтобы проверить строку, переворачиваем её и сравниваем с исходной (без учёта регистра).
class Main {
public static void main(String[] args) {
String str = "Radar", reverseStr = "";
int strLength = str.length();
for (int i = (strLength - 1); i >=0; --i) {
reverseStr = reverseStr + str.charAt(i);
}
if (str.toLowerCase().equals(reverseStr.toLowerCase())) {
System.out.println(str + " is a Palindrome String.");
}
else {
System.out.println(str + " is not a Palindrome String.");
}
}
}
Вывод:
Radar is a Palindrome String.
В программе строка "Radar" сохранена в str. Алгоритм состоит из двух частей:
1. Цикл for для разворота строки
Цикл идёт с конца строки к началу.
Метод
charAt()достаёт каждый символ строки по индексу.Каждый символ добавляется в
reverseStrв обратном порядке.
2. Сравнение str и reverseStr с помощью if
Метод
toLowerCase()приводит обе строки к нижнему регистру. Это важно, потому что Java различает регистр:'r'и'R'— разные символы.Метод
equals()проверяет, равны ли строки.
Пример 2: проверка числа на палиндром
Для числа разворачиваем его так же, как в задаче про переворот числа, и сравниваем с исходным.
class Main {
public static void main(String[] args) {
int num = 3553, reversedNum = 0, remainder;
// store the number to originalNum
int originalNum = num;
// get the reverse of originalNum
// store it in variable
while (num != 0) {
remainder = num % 10;
reversedNum = reversedNum * 10 + remainder;
num /= 10;
}
// check if reversedNum and originalNum are equal
if (originalNum == reversedNum) {
System.out.println(originalNum + " is Palindrome.");
}
else {
System.out.println(originalNum + " is not Palindrome.");
}
}
}
Вывод:
3553 is Palindrome.
В этой программе число 3553 сохранено в num и в originalNum. Используются:
цикл while для разворота
numи сохранения результата вreversedNum;if/else для сравнения
reversedNumс исходнымoriginalNum.