Java 扫描器没有接受我的字符串输入
The Java Scanner is not taking my String Input
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
double d = scan.nextDouble();
String s = scan.nextLine();
System.out.println("String: " + s);
System.out.println("Double: " + d);
System.out.println("Int: " + i);
}
这是我的代码。它编译正确,没有语法错误,但我不明白为什么我的字符串输入没有被接受。只要我给出整数输入和双输入,输出就会出现:
输入
42
309.23
输出
字符串:
双:309.23
整数:42
scan.nextDouble()
或 scan.nextInt()
未完成该行,因此当 scan.nextLine()
变得简单时,您可以说它消耗了剩余的空白行,因此 String 不打印任何内容。要消耗剩余的行,请将 scan.nextLine()
放在 String s = scan.nextLine();
之前
请注意,对于单行输入 1 1.1 done
您将得到输出:
String: done
Double: 1.1
Int: 1
输出中 done
前面有一个 space 字符,提示您扫描器一次消耗一个令牌。例如,查看 scan.nextInt and scan.nextLine
的文档
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
double d = scan.nextDouble();
String s = scan.nextLine();
System.out.println("String: " + s);
System.out.println("Double: " + d);
System.out.println("Int: " + i);
}
这是我的代码。它编译正确,没有语法错误,但我不明白为什么我的字符串输入没有被接受。只要我给出整数输入和双输入,输出就会出现:
输入
42
309.23
输出
字符串:
双:309.23
整数:42
scan.nextDouble()
或 scan.nextInt()
未完成该行,因此当 scan.nextLine()
变得简单时,您可以说它消耗了剩余的空白行,因此 String 不打印任何内容。要消耗剩余的行,请将 scan.nextLine()
放在 String s = scan.nextLine();
请注意,对于单行输入 1 1.1 done
您将得到输出:
String: done
Double: 1.1
Int: 1
输出中 done
前面有一个 space 字符,提示您扫描器一次消耗一个令牌。例如,查看 scan.nextInt and scan.nextLine