Как я могу напечатать специальный символ, но все же я могу сравнить его, если это палиндром или нет

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 - палиндром

String original = word; <- это сохраняет копию (запустите это ДО .replaceAll, конечно), тогда вы можете распечатать это.
rzwitserloot 05.05.2022 03:59

Отвечает ли это на ваш вопрос? Проверить строку на наличие палиндрома

Alexander Ivanchenko 05.05.2022 04:05
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
26
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете сохранить копию исходного слова в переменной (скажем, 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.

Другие вопросы по теме