Чтение входных данных в Java - PullRequest
1 голос
/ 05 апреля 2010

Привет всем, я пытаюсь улучшить свои навыки Java, решая некоторые проблемы из ACM, теперь мой пример ввода выглядит так:

 3 100
 34 100
 75 250
 27 2147483647
 101 304
 101 303
 -1 -1

Итак, сначала я просто пытаюсьчитать их, но это не работает, вот код Java:

import java.io.BufferedInputStream;
import java.util.Scanner;

public class Main {

    public static void main(String args[]) {
        Scanner stdin = new Scanner(new BufferedInputStream(System.in));
        while (stdin.hasNext()) {
            System.out.println(stdin.nextInt() + " and the next " + stdin.nextInt());
        }
    }
}

Я пытаюсь отправить эти входные данные в качестве аргумента, а не читать их из файла, вот как:

альтернативный текст http://i41.tinypic.com/j61npu.gif

Программа просто вращается (выполняется), но ничего не печатает.Как я могу это исправить?

Ответы [ 3 ]

5 голосов
/ 05 апреля 2010

Аргументы, которые вы указали в мастере, не вводятся в программу через стандартный ввод. Вместо этого они передаются в String[] args аргументах, передаваемых в ваш метод main.Похоже, что вы работаете в Eclipse, вы можете перейти на вкладку Console, которая будет сгенерирована, и набрать в этом окне.Кроме того, вы можете перебрать параметр args, чтобы получить эти значения.

1 голос
/ 05 апреля 2010

Я не использую Eclipse, но это должно напечатать цифры, которые вы ввели. Вы передаете числа как строковые аргументы, так что это: «3 100» фактически равно

String str = 3 + " " + 100;

Это должно напечатать цифры:

public static void main(String[] args) 
{
    for (String arg : args)
    {
        System.out.println(arg);
    }
}
0 голосов
/ 05 апреля 2010

Попробуйте это:

Scanner sc = new Scanner (System.in);
while (sc.hasNextInt()) {
    System.out.println(sc.nextInt());
}

После запуска программы вы должны указать в качестве входных данных несколько чисел.

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