java.util.NoSuchElementException при обработке ввода с консоли

Рейтинг: 0Ответов: 1Опубликовано: 22.02.2011

java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at Factor.main(Factor.java:19)

Вот код:

import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) throws IOException {
        Scanner in = new Scanner(System.in);
        String a = in.nextLine();
        String b = in.nextLine();
        String c = in.nextLine();
        String a1 = del(a);
        String b1 = del(b);
        String c1 = del(c);
        int n = in.nextInt();
        String[] arrStud = new String[n];
        BufferedReader input = new
                BufferedReader(new InputStreamReader(System.in));
        for (int i = 0; i < n; i++) {
            String s = input.readLine();
            s = del(s);
            if (s.toLowerCase().contains(a1.toLowerCase())
                    && s.toLowerCase().contains(b1.toLowerCase())
                    && s.toLowerCase().contains(c1.toLowerCase())
                    && s.length() == (a1.length() + b1.length() + c1.length())) {
                arrStud[i] = "ACC";
            } else {
                arrStud[i] = "WA";
            }
        }
        for (int i = 0; i < n; i++) {
            System.out.println(arrStud[i]);
        }
    }

    public static String del(String s) {
        String n = new String();
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) != '-'
                    && s.charAt(i) != '_' && s.charAt(i) != ';') {
                n += s.charAt(i);
            }
        }
        return n;
    }
}

Ответы

▲ 2

из вашей ошибки понятно что ругается на то что вы не ввели необходимое количество строк в консоли.

думаю стоит немного обновить ваш код:

String s = input.readLine();
            s = s.replaceAll ("[-_;]", "" ) );
            if (s.equalsIgnoreCase ( a1 +  b1 + c1 )) {
                arrStud[i] = "ACC";
            } else {
                arrStud[i] = "WA";
            }

или так:

            arrStud[i] = (s.equalsIgnoreCase ( a1 +  b1 + c1 ) ? "ACC" : "WA");