扫描仪下一行Java错误
我想要一个java程序来接受 1.整数 2.双人 3.字符串 分别地 并显示以上内容 但我面临的问题是,在输入整数并将其加倍后,不会提示我输入字符串。它直接显示值。 当我搜索soln的时候,我知道了这一点扫描仪下一行Java错误,java,java.util.scanner,Java,Java.util.scanner,我想要一个java程序来接受 1.整数 2.双人 3.字符串 分别地 并显示以上内容 但我面临的问题是,在输入整数并将其加倍后,不会提示我输入字符串。它直接显示值。 当我搜索soln的时候,我知道了这一点 scan.nextLine(); 应在我接受双精度值后使用 谁能告诉我为什么要用这条线吗。 我读了nextLine的文件。但是我不明白 import java.util.Scanner; public class Solution { public static void ma
scan.nextLine();
应在我接受双精度值后使用
谁能告诉我为什么要用这条线吗。
我读了nextLine的文件。但是我不明白
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
double d = scan.nextDouble();
// scan.nextLine(); **Why should I write this ??**
String s = scan.nextLine();
System.out.println("String: " + s);
System.out.println("Double: " + d);
System.out.println("Int: " + i);
}
}
根据
nextLine()
javadoc:
使扫描器前进超过当前行并返回
被跳过了。此方法返回当前行的其余部分,
不包括末端的任何行分隔符。该位置设置为
下一行的开头
输入双精度值后,nextLine()
读取包含双精度值的行上的剩余值。这就是为什么输入字符串需要另一个nextLine()
使用next()
可以解决您的问题:
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
double d = scan.nextDouble();
String s = scan.next();
System.out.println("String: " + s);
System.out.println("Double: " + d);
System.out.println("Int: " + i);
根据
nextLine()
javadoc:
使扫描器前进超过当前行并返回
被跳过了。此方法返回当前行的其余部分,
不包括末端的任何行分隔符。该位置设置为
下一行的开头
输入双精度值后,nextLine()
读取包含双精度值的行上的剩余值。这就是为什么输入字符串需要另一个nextLine()
使用next()
可以解决您的问题:
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
double d = scan.nextDouble();
String s = scan.next();
System.out.println("String: " + s);
System.out.println("Double: " + d);
System.out.println("Int: " + i);
因为它将新行字符作为输入字符串。只要问一下,当你插入一个双精度字符时,你的数字是多少?因为它将新行字符作为一个输入字符串,所以可能会重复。只要问一下,当你插入一个双精度字符时,你的数字是多少?可能会重复谢谢。我想在翻倍后,它只会转到下一行。谢谢。我想在翻倍之后,它就直接进入下一行了。