2013-10-06 6 views
0

Предположим, что у меня есть вход из шести целых чисел, разделенных пробелами.Выбор целых чисел, разделенных пробелами, из консоли в Java

2 7 10 34 2 11 

Если я хочу, чтобы поднять на шесть переменных int a,b,c,d,e,f;.

В C я могу сделать это, как следующие непосредственно

scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f); 

В Java, методы (которые я знаю) я действительно раздражает, насколько к me.You должны либо использовать

BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 

Затем мы можем использовать String s=br.readLine();, а затем s.split(" "), чтобы выбрать отдельные значения. Другой вариант - использовать scanner, который делает то же самое. Аргументы в командной строке дают некоторое облегчение, но мы не можем использовать его во время работы.

Я хочу спросить, нет ли прямого метода прямой линии для выбора этих пространственно разделенных целых чисел?

(Существует similar под названием вопрос, но его основной и не по теме, так что я поднял этот вопрос) (Там

+1

Почему бы не вы помещаете их в коллекцию? Легче и более общий. –

+0

@DaveNewton: Не могли бы вы привести пример или фрагмент кода для полноты этого вопроса. –

+0

Подход, который вы показали, является лучшей альтернативой. Вы можете связать строку 'String [] s = br.readLine(). Split (" ");' если вы действительно ненавидите строки, но это все. –

ответ

0
import java.util.Scanner; //in the beginning of your code 

Scanner scan = new Scanner(System.in); //somewhere along you're code 

здесь, есть 2 способа сделать это. Обычно все вы входите в System.in сохраняется, и такие методы, как .nextInt() или next(), будут принимать первое значение, разделенное пробелом, и каждый раз, когда вы используете этот метод, вы можете вводить больше значений, но он будет размещать его после первых введенных :

Ex: Вы используете scan.nextInt() и введите: "1 2 3 ", это займет 1, но у вас все еще есть« 2 3 » с помощью функции scan.nextInt() снова позволит вам ввести больше значений и сказать, что вы ввели« 4 5 6 », .nextInt() будет принимать 2, но теперь вы будете иметь "3 4 5 6"

метод, который я хотел бы использовать следующий:

String str = scan.nextLine(); 
int[] array = new int[6] 
int count = 0; 
Scanner strScan = new Scanner(str); 
while(strScan.hasNext()) 
{ 
    array[count]=Integer.parseInt(str.next()); 
    count++; 
} 

но вы также можете использовать:

String str = scan.nextLine(); 
Scanner strScan = new Scanner(str); 
a = Integer.parseInt(scan.next()); 
b = Integer.parseInt(scan.next()); 
... 
f = Integer.parseInt(scan.next()); 
Смежные вопросы