This question already has answers here:
java.util.NoSuchElementException: No line found
                            
                                (6个答案)
                            
                    
                去年关闭。
        

    

回文词是向后或向前读相同的单词。
编写一个函数来检查给定的单词是否是回文。字符大小写应忽略。

我创建了一个方法isPalindrome(String word),它检查传递的字符串是否是回文,并返回布尔值。
例如,isPalindrome("Deleveled")应该返回true,因为应该忽略字符大小写,从而导致“降级”,这是回文,因为它前后读取相同的内容。

这是错误:

Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Scanner.java:1540)
    at Main.main(Main.java:20)


我的代码是:

import java.util.Scanner;
public class Main{
    static boolean isPalindrome(String word){
        int c=word.length()-1;
        boolean flag = false;
        for(int i=0; i<word.length(); i++){
            if(word.charAt(i)==word.charAt(c))
                flag=true;
            else
                return false;
            c--;
        }
        return flag;
    }

     public static void main(String []args){
        Scanner scan = new Scanner(System.in);
        String word= scan.nextLine();
        System.out.println(isPalindrome(word));
        scan.close();
     }
}

最佳答案

您的代码很好。在比较之前,您只需要小写或大写一个字即可。

static boolean isPalindrome(String word){
        word=word.toLowerCase();  //Added this
        int c=word.length()-1;
        boolean flag = false;
        for(int i=0; i<word.length(); i++){
            if(word.charAt(i)==word.charAt(c))
                flag=true;
            else
                return false;
            c--;
        }
        return flag;
    }

07-24 21:29