我正在用java代码制作一个非常简单的应用程序,但由于某种原因它不起作用。它是一个回文检查器。
这是代码。
主要:
公共(public)类主{
公共(public)静态无效主(字符串[] args){
Palindroom.palindroomChecker("RACECAR");
}
}
`回文室类:
公开课回文室{
public static void palindroomChecker(String input) {
String omgekeerd = "";
boolean isPalindroom = false;
int length = input.length();
for(int i = 0; i < length; i++ ) {
String hulp = "" + input.charAt(i);
omgekeerd = omgekeerd + hulp;
}
System.out.println(omgekeerd);
System.out.println(input);
if(omgekeerd.equals(input)){
System.out.println("DIT IS EEN PALINDROOM!");
}
else {
System.out.println("HELAAS, DIT IS GEEN PALINDROOM!");
}
}
}`
由于某种原因,if 语句中的检查没有按其必须进行的那样进行。正如您所看到的,我检查了 omgekeerd 和输入,并且之前我还检查了 omgekeerd 的长度以查看是否有空白空格。
谁能帮帮我!
提前致谢
问候毛罗·帕尔斯格拉夫
最佳答案
你的逻辑有问题。您通过按相同顺序附加输入的每个字符来重建一个新字符串,然后检查两个字符串是否相等。所以你的方法总是说输入是回文。
您应该通过以相反的顺序附加字符来构造一个新字符串。
或者,您可以通过检查第 n 个字符是否与 length - 1 - n 位置处的字符相同(对于 0 和 length/2 之间的每个 n)来加快速度。
关于eclipse - 检查java代码中的回文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21946035/