Чтение входных данных в Java - помощь - PullRequest
0 голосов
/ 03 июня 2010

У меня проблемы с чтением входных данных, может кто-нибудь мне помочь.

Каждая строка ввода должна содержать целые числа: X e Y, разделенные пробелом.

12 1    
12 3  
23 4  
9 3 

Я использую этот код в Java, но он не работает, только чтение первой строки может мне кто-нибудь помочь?

    String []f; 
    String line;
    Scanner in=new Scanner(System.in);

    while((line=in.nextLine())!=null){
        f=line.split(" ");

        int X,Y;
        X=Integer.parseInt(f[0]);
        Y=Integer.parseInt(f[1]);

        if(X<=40 && Y<=40)
          metohod(X,Y); 


        line=in.nextLine();

    }
}

Ответы [ 4 ]

1 голос
/ 03 июня 2010

Вы вызываете nextLine дважды, время от времени, другой - linha = xxx; что такое Линха? Попробуйте это

BufferedReader reader = new BufferedReader(...);
while((line = reader.readLine())!=null) {
  String[] f = line.split(" ");
  int X,Y;
  X=Integer.parseInt(f[0]);
  Y=Integer.parseInt(f[1]);
}
0 голосов
/ 03 июня 2010

Поскольку вы используете Scanner, почему бы вам просто не использовать nextInt() вместо nextLine()? Таким образом, вы можете дважды позвонить по номеру nextInt() и получить два номера для каждой строки.

То, как вы кодировали, выглядит так, как будто вы пытаетесь использовать BufferedReader вместо Scanner.

0 голосов
/ 03 июня 2010

Вы называете один line=in.nextLine() слишком много, но почему бы не использовать in.nextInt()? Следующее должно работать как ожидалось:

Scanner in = new Scanner(System.in);

while(in.hasNextLine()) {
    int x = in.nextInt();
    int y = in.nextInt();

    if(x <= 40 && y <= 40)
        method(x, y); 
}

(Код проверен, и он читает больше, чем просто первая строка. Возможно, вашей предыдущей проблемой был формат новой строки входного файла.)

Взгляните на документацию по API сканера .


Для отладки вы можете использовать конструктор Scanner(File file).

0 голосов
/ 03 июня 2010
line=in.nextLine();

Вы читаете следующую строку и ничего не делаете с ней. Если убрать то должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...