Ulisse Benedetti Ulisse54 Ulisse Benedetti Ulisse54 - 6 months ago 10
Java Question

Inputting different variable types in one time in Java

I made a calculator in C++ and i'm trying to recreate it mirror-like in Java.

There were 2 double variables(

double a
and
double b
)for the 2 operands and a char(
char op
) to put in an if cycle, so for instace if
op = '+'
it will
cout << a << op << b << "=" << a+b << endl;
.

So i could write
12+2
in the console prompt and see
12+2=14
as output.

Now in Java i have to it one per line:

Scanner Scin = new Scanner(System.in);
System.out.println("OPERATION>");
a = Scin.nextDouble();
op = Scin.next().charAt(0);
b = Scin.nextDouble();


And so i have to write a value and press return each time. How can i input all in one time like C++, and maybe do it in one line of code? Thanks in advance.

Answer

You can't read in multiple variables at once using Scanner, you will have to read them in one at a time. However, there is a nice way to allow the inputs to occur without hitting enter each time or inputting a space: set a different delimiter! The default delimiter is whitespace (which includes newlines), but you could also set it to the word boundary \b from regex.

Scanner in = new Scanner(System.in).useDelimiter("\\b|\\s+");

Now you can read in 12+2 and it will split up the next calls where you want them, or you can continue to hit enter, or you can put spaces between the values. Your choice :D

To restore the delimiter to normal afterwards, use in.reset().

Comments