Возможно ли ввести несколько чисел через 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)); }
Scanner пересоздавать не нужно. Обернул им поток System.in и дальше пользуешься Integer.parseInt тоже не нужен. У сканера можно напрямую запросить nextInt()
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}));
}
}