首页 > 解决方案 > 在 java.util.Scanner.nextLine(Scanner.java:1540) 处找不到行

问题描述

我正在尝试获取一个程序来检查用户输入的字符串是否是回文(来自 CodeAbbey 的任务)。当我输入自己的输入数据时,它运行良好,但如果网站自动输入字符串,我会收到此错误:

例外:

线程“主”java.util.NoSuchElementException 中的异常:在 Palindromes.main(Palindromes.java:13) 的 java.util.Scanner.nextLine(Scanner.java:1540) 处找不到行

编码:

public class Palindromes {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        Scanner scanStr = new Scanner(System.in);

        //Number of tests
        int n = scan.nextInt();

        for (int i = 0; i < n; i++) {
            //Getting string
            String s = scanStr.nextLine();

            //Variable for number of letters in string
            int letters = 0;

            //Getting number of letters in string
            for (int j = 0; j < s.length(); j++) {
                if (Character.isLetter(s.charAt(j)))
                    letters++;
            }

            //Array with string characters
            char[] characters = new char[letters];

            //Counter
            int a = 0;
            //Put chars from string to array
            for (int j = 0; j < s.length(); j++) {
                if (Character.isLetter(s.charAt(j))) {
                    characters[a] = s.toLowerCase().charAt(j);
                    a++;
                }
            }

            //Counters
            int x = 0;
            int y = characters.length - 1;
            //Variable for result
            char res = 'Y';

            //If the string is a palindrome
            do {
                if (characters[x] != characters[y])
                    res = 'N';
                x++;
                y--;
            } while (x <= y);

            //Prints result
            System.out.print(res + " ");
        }
    }
}

标签: javastring

解决方案


推荐阅读