在Java中使用hasNextLine,在NextInt之后不会读取NextLine

时间:2009-09-17 00:04:29

标签: java string integer

我想让这个工作

 System.out.println("Please enter what SOCKET NUMBER you" + 
"wish to connect to");   
            int sockname = Integer.parseInt(inFromUser.nextLine());

   System.out.println("Please enter what HOSTNAME you" + 
"wish to connect to");
   String hostname = inFromUser.nextLine();

问题是我不能让主机名等于用户输入。我认为这与hasNext或其变体有关,但我不确定。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

在nextLine()之后输入缓冲区中可能有“\ n”,因此下一次调用只读取它并返回。读取int后需要清除缓冲区

inFromUser.skip("\\n+");

答案 1 :(得分:1)

java.io.BufferedReader有一个readLine()方法。用那个。如果您正在使用Scanner.nextLine(),那么您应该知道如果您的位置在换行符之前,您将获得一个空字符串。但是,下一个nextLine确实会返回一整行文本(与readLine相同)。