This week's book giveaway is in the Clojure forum.
We're giving away four copies of Clojure in Action and have Amit Rathore and Francis Avila on-line!
See this thread for details.
Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

delimiters and Scanner class

 
Steven Coddington
Greenhorn
Posts: 10
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
beginner programmer having trouble with Scanner and delimiters.

Here is the code that does not work:

import java.util.Scanner;

public class ScannerTester {

public static void main(String[] args) {
Scanner s = new Scanner(System.in);

System.out.println("Enter a double ");
double d = s.nextDouble();
System.out.println("Your double is " + d);
System.out.println("enter some more text\n");
String thisString = s.nextLine();
System.out.println(thisString);
}
}

The problem is that there is no pause to input the string. The method apparently reads something without waiting for keyboard input. I tried changing the new Scanner line to

Scanner s = new Scanner(System.in).useDelimiter("\n");

without success.

Am I right that a delimiter other than default is needed? If so, which one?

Thanks
 
pete stein
Bartender
Posts: 1561
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
not quite. what you have to know is that a Scanner#nextDouble() will get the next token and return it if it parses into a well-formed double, but it does not eat the end of line mark. To do that, you should call scanner#nextLine() like so:
 
Don't get me started about those stupid light bulbs.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic