im编写代码以读取整数值,也许是float,double,然后最后读取字符串。发生的事情是我输入int,按Enter,之后执行应停止直到输入字符串。但是,一旦我按Enter进入NewLine,我就会获得数字,因为执行不会暂停输入字符串。发生了什么
尝试输入数字,然后尝试使用字符串。尝试输入数字,然后用数字进行操作,尝试输入几个字符串,但我无法让程序读取一个数字,然后读一个字符串。
package test;
import java.util.Scanner;
public class Trying {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
double d=scan.nextDouble();
String s=scan.nextLine();
scan.close();
System.out.println("String: '" + s+"'");
System.out.println("Double: " + d);
System.out.println("Int: " + i);
}
}
我没有字符串的输出
您的问题是一起使用 Scanner.nextLine()
和 Scanner.nextDouble()
/ Scanner.nextInt()
。一起使用它们时应该要小心,因为它们可能会导致意外行为。您可以阅读扫描仪类的Javadocs以获取更多详细信息。而不是int i = scanner.nextInt(); double d = scanner.nextDouble()
,请尝试使用double d = Double.parseDouble(scanner.nextLine())
在字符串中读取并将其转换为双重。
您需要在接受字符串输入之前清除扫描仪中的缓冲区,所以只需写
scan.nextLine();
之前 String s=scan.nextLine();
它将起作用