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

时间:2014-12-05 06:05:29

标签: java next

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

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

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

为什么?

1 个答案:

答案 0 :(得分:1)

nextLine()之后添加next(),以通过调用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();