nextLine() 在 next() 方法之后不起作用

Posted

技术标签:

【中文标题】nextLine() 在 next() 方法之后不起作用【英文标题】:nextLine() not working after next() method 【发布时间】:2014-12-05 06:05:28 【问题描述】:
package new_package;

import java.util.Scanner;

public class Test 

public static void main ( String args[])


Scanner input = new Scanner(System.in);

System.out.println("Enter a character");

char c = input.next().charAt(0);

System.out.println ( "Enter a string");

String s = input.nextLine();

System.out.println (c);
System.out.println (s); 




这个程序第一次执行后的输出是:

输入一个字符

我在输出中输入字符 c 后看起来像:

输入一个字符

c

输入一个字符串

c

这个程序的问题是我不允许输入应该在下一行命令的帮助下输入的字符串。

程序自动为字符串取值“”并打印空字符串。

为什么?

【问题讨论】:

Scanner is skipping nextLine() after using next() or nextFoo()?的可能重复 【参考方案1】:

next() 之后添加nextLine(),以使用包含您通过调用next() 获得的令牌的行尾。否则,当您调用String s = input.nextLine(); 时,会消耗行尾,从而使s 为空。

char c = input.next().charAt(0);
input.nextLine(); // add this
System.out.println ( "Enter a string");

String s = input.nextLine();

【讨论】:

以上是关于nextLine() 在 next() 方法之后不起作用的主要内容,如果未能解决你的问题,请参考以下文章

JAVAScanner.next()与Scanner.nextLine()的区别

java中next()和nextline()用法区别

转:Scanner中nextLine()方法和next()方法的区别

Java之字符串输入next()与nextLine()

nextLine()方法和next()方法区别

Java基础