Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Возможно ли ввести несколько чисел через Scanner в одну строку? (java)

Rebel Cat Ученик (135), на голосовании 5 лет назад
System.out.print("Enter numbers: ");
Scanner scan = new Scanner(System.in);
String x = scan.next();
то есть
при надписи " Enter numbers: " я ввожу 45, а хотелось бы 45 65 100 .
И что бы эти данные были занесены в массив [0]=45; [1]=65; [2]=10;
Пока на моём уровне java что бы это сделать приходится повторять алгоритм Scanner и каждый раз присваивать новую переменную. В итоге программа получается весьма большой, думаю как бы оптимизировать
вот полный код (2 недели в java и до сих пор разбирал базовую теорию, так что всё не качественно)

"программа распределяет введённые 3 числа на чётные числа и нечётные."

package com.company;

import java.util.ArrayList;
import java.util.Scanner;
import java.lang.Integer;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {

System.out.print("Enter number 1: ");
Scanner scan = new Scanner(System.in);
String x = scan.next();
int q = Integer.parseInt(x);
System.out.print("Enter number 2: ");
Scanner scan1 = new Scanner(System.in);
String c = scan1.next();
int w = Integer.parseInt(c);
System.out.print("Enter number 3: ");
Scanner scan2 = new Scanner(System.in);
String i = scan2.next();
int e = Integer.parseInt(i);
if ((q<0) && (w<0) && (e<0))
System.out.print("Incorrect enter!!!");
var numb = new ArrayList();
numb.add(q);
numb.add(w);
numb.add(e);
int iop = numb.get(0) % 2;
int iop1 = numb.get(1) % 2;
int iop2 = numb.get(2) % 2;
var vendigo = new ArrayList();
var vendigo123 = new ArrayList();
if(iop==0) {
vendigo.add(numb.get(0)); }
else {
vendigo123.add(numb.get(0));
}
if(iop1==0) {
vendigo.add(numb.get(1)); }
else {
vendigo123.add(numb.get(1));
}
if(iop2==0) {
vendigo.add(numb.get(2)); }
else {
vendigo123.add(numb.get(2));
}

System.out.println("Четные: "+Arrays.toString(new ArrayList[]{vendigo}));
System.out.println("Нечетные: "+Arrays.toString(new ArrayList[]{vendigo123}));
}
}
Голосование за лучший ответ
クマのプーさん Мудрец (15495) 5 лет назад
Scanner пересоздавать не нужно. Обернул им поток System.in и дальше пользуешься
Integer.parseInt тоже не нужен. У сканера можно напрямую запросить nextInt()
Похожие вопросы