java - 尝试扫描一个整数,然后是一个字符串
问题描述
我正在编写代码来读取一个整数值,可能是一个浮点数、一个双精度值,然后最后读取一个字符串。发生的情况是我输入了 int,然后按 enter,然后执行应该停止,直到我输入一个字符串。但是,当我按下回车键进入换行符时,我得到的输出只是数字,因为执行不会暂停让我输入字符串。这是怎么回事
尝试输入数字然后输入字符串,这有效。尝试输入数字后跟数字,这有效,尝试输入几个字符串,有效,但我无法让程序先读取一个数字,然后再读取一个字符串。
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()
and Scanner.nextDouble()
/ Scanner.nextInt()
。一起使用它们时应该小心,因为它们可能会导致意外行为。您可以阅读 Scanner 类的 JavaDocs 以获取更多详细信息。而不是int i = scanner.nextInt(); double d = scanner.nextDouble()
,尝试使用double d = Double.parseDouble(scanner.nextLine())
读取字符串并将其转换为双精度。
推荐阅读
- session - Laravel 6.0 写入会话时出错 ias 无法在 Windows 中打开文件流
- android - React Native Modal 关闭多点触控(Android)
- python - 如何将整数列表列表转换为整数列表 Python?
- jquery - 第二次验证失败时未显示工具提示
- php - 如何使用 API 响应验证用户并登录他?
- elasticsearch - ES , Group By field ORDER by date
- javascript - 选择下拉列表时如何自动填充文本框
- swift - 从 coreData 与 Array.sort 检索时使用 sortDescriptors 是否存在性能差异?
- javascript - 仅当满足条件时才在 'fetch' 中执行 'then'
- resources - 是否存在对角线移动的资源?