Yes, that will work. Much better than re‑declaring it. I would declare it in a different class and make it final, because, as you correctly said, you only need one Scanner per (single‑threaded) application. Once initialised, it never needs to be re‑assigned.I think there is a better way to get keyboard input, but you will have to devote a few hours' work to it. I have written myself a utility class. Search my posts for “utility class Scanner” and you will find it, but only in pieces which you will have to assemble. I can write...and it is so written that the problem about getting an empty line from nextLine() doesn't occur. If you use that class in any code you are giving to anybody else, please acknowledge its course in its first comment.