Java 回文格间距

Java 回文格间距,java,palindrome,Java,Palindrome,我有一个程序,我正在输入一个Java程序来检查输入的字符串是否是回文。我有两个问题正在进行,我无法为我的生活似乎明白 我已经把代码打出来了,这样当所有小写字母都没有空格的时候,它就会告诉我它是否是回文。每当我输入一个带有空格的回文时,它都会告诉我它不是回文。我想我只是缺少了一段代码来让它工作 import java.util.Scanner; public class HW3 { public static void main(String[] args) { Sca

我有一个程序,我正在输入一个Java程序来检查输入的字符串是否是回文。我有两个问题正在进行,我无法为我的生活似乎明白

我已经把代码打出来了,这样当所有小写字母都没有空格的时候,它就会告诉我它是否是回文。每当我输入一个带有空格的回文时,它都会告诉我它不是回文。我想我只是缺少了一段代码来让它工作

import java.util.Scanner;

public class HW3 {

    public static void main(String[] args) {
        Scanner keyboard = new Scanner(System.in);

        String word;
        String backwards = "";

        System.out.println("Enter a word or phrase and I'll tell you if it's a palindrome");
        word = keyboard.nextLine();

        int length = word.length();

        for (int i = length - 1; i >= 0; i--) {
            backwards = backwards + word.charAt(i);
        }

        if (word.equalsIgnoreCase(backwards)) {
            System.out.println(word + " is a palindrome!");
        }
        else {
            System.out.println("That is not a palindrome!");
            System.exit(0);
        }

        System.out.println("Done!");
    }
}

您的程序按预期运行。(至少我希望它是如何工作的;
“taco cat”
不等于
“tac ocat”
,因此不应将其视为一个回传。)

如果要忽略空格,可以这样做

word = word.replaceAll("\\s", "");

在读取输入字符串之后。

您似乎想删除强字符串中的空格。为此,请使用
replace()
方法:

word.replace(" ", "");

在执行回文检查之前,请尝试删除所有空格

word = word.replaceAll("\\s","");

它确实有效。试着做“ab-ba”。好吧,这确实有效。其他单词甚至不完全像ab-ba也不起作用。被要求测试Taco-cat这个词,但它说它不是回文。这是因为“Taco-cat”不等于“tac-ocat”。请参阅我关于如何从空格忽略的答案。@np0212,因为它不是。反面是“tac OCTO”。你想删除空格吗?我做了下面的aioobe所说的,就是删除空格,现在就可以了。只要看看这个例子,当代码读回给你时,他仍然在代码中有空格,但我相信这会很好。感谢你们的帮助!如果OP想忽略
我打赌他也想忽略
“\t”