我一直在尝试使该程序正常工作,让该人在控制台中写一个单词,并使控制台有一个输出,说明该单词是否是回文。

package sct;

import java.util.Scanner;

public class Assignment3Problem4 {

    public static void main(String[] args) {

        Scanner reader = new Scanner(System.in);
        System.out.println("Enter a  a string: ");
        String DAWORD = reader.nextLine();

        reader.close();

        int n = DAWORD.length();
        boolean isPalindrome = true;
        for (int i = 0; i < n; ++i) {
            if (DAWORD.charAt(i) != DAWORD.charAt(n - i - 1)) {

                isPalindrome = false;
                break;
            }
            if (isPalindrome)
                System.out.println("This word is a palindrome");
            else
                System.out.println("This word is not a palindrome");
        }
    }
}


可悲的是,这没有用,并且控制台不允许我输入字符串,有人可以找出原因并修复代码吗?

最佳答案

直到for循环之后,才应该打印单词是否是回文(或不是)。这是我运行发布的代码的唯一问题。

Scanner reader = new Scanner(System.in);
System.out.println("Enter a  a string: ");
String DAWORD = reader.nextLine();

reader.close();

int n = DAWORD.length();
boolean isPalindrome = true;
for (int i = 0; i < n; ++i) {
    if (DAWORD.charAt(i) != DAWORD.charAt(n - i - 1)) {
        isPalindrome = false;
        break;
    }
}
if (isPalindrome)
    System.out.println("This word is a palindrome");
else
    System.out.println("This word is not a palindrome");


您可能要删除reader.close()(因为这也会关闭System.in)。

10-07 12:22
查看更多