我收到java.util.NoSuchElementException:找不到行错误[重复]

问题描述 投票:0回答:2

这个问题在这里已有答案:

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

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

这是错误:

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();
     }
}
java java.util.scanner
2个回答
0
投票

你的代码很好。在比较之前,您只需要使用小写或大写。

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;
    }

0
投票

在调用scan.readLine()之前添加scan.hasNextLine()

© www.soinside.com 2019 - 2024. All rights reserved.