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