import java.util.*;
public class Fin4 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Enter a word to check if it is a palindrome: ");
String word = in.nextLine();
word = word.replaceAll("[{}!@#$%^&.,' ]", "");
word = word.substring(0);
String reverse = "";
for(int i=word.length()-1;i>=0;i--)
reverse+=word.charAt(i);
if (word.equalsIgnoreCase(reverse))
System.out.print(word + " is a palindrome.");
else
System.out.print(word + " is not a palindrome.");
}
}
Например Введите слово, чтобы проверить, является ли оно палиндромом: мадам, я адам Вывод должен быть -> мадам, я адам палиндром но мой вывод -> MadamImadam - палиндром
Отвечает ли это на ваш вопрос? Проверить строку на наличие палиндрома
Вы можете сохранить копию исходного слова в переменной (скажем, copyWord) и распечатать эту переменную в операторах печати.
Причина, по которой исходная строка не печатается, заключается в том, что вы изменяете ее и сохраняете обновленное слово (в word.replaceAll())
public class Fin4 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Enter a word to check if it is a palindrome: ");
String word = in.nextLine();
String copyWord = word;
word = word.replaceAll("[{}!@#$%^&.,' ]", "");
word = word.substring(0);
String reverse = "";
for (int i = word.length() - 1; i >= 0; i--)
reverse += word.charAt(i);
if (word.equalsIgnoreCase(reverse))
System.out.print(copyWord + " is a palindrome.");
else
System.out.print(copyWord + " is not a palindrome.");
}
}
и выход
Enter a word to check if it is a palindrome: Madam, I'm adam
Madam, I'm adam is a palindrome.
String original = word;
<- это сохраняет копию (запустите это ДО.replaceAll
, конечно), тогда вы можете распечатать это.