gpt4 book ai didi

java - 以任意顺序接受用户的任意数据类型(int、float、string)

转载 作者:行者123 更新时间:2023-12-02 02:44:49 24 4
gpt4 key购买 nike

在 Java 中获取 StdInput 和 StdOutput 的语法应该是什么。

我需要从用户那里获取输入,这些输入可以是任何顺序和任何数据类型(int、float、string)。我的代码采用了这种方式,但它不允许灵活地以随机顺序接受数据类型。

Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
double y = sc.nextDouble();
sc.nextLine();
String s = sc.nextLine();

System.out.println("String: " + s);
System.out.println("Double: " + y);
System.out.println("Int: " + x);

无论数据类型如何,如何以任意顺序获取输入?

最佳答案

这取决于您想要的输入内容。

但是您可以做的一件事是将输入作为字符串,然后检查字符串的内容。例如,您可以使用 parseInt()parseDouble() 方法对数据类型进行跟踪和错误。像这样的事情:

try {
// Try to parse it as an integer
Integer.parseInt(input);
}
catch (NumberFormatException exc) {
try {
// Try to parse it as a double
Double.parseDouble(input);
}
catch (NumberformatException exc) {
// Else, it's a string
}
}

但是,下面有一种更优雅的方式:

Scanner sc = new Scanner(System.in);
while (true) { // Some condition
if (sc.hasNextInt()) {
int i = sc.nextInt();
System.out.println("int: " + i);
}
else if (sc.hasNextDouble()) {
double d = sc.nextDouble();
System.out.println("double: " + d);
}
else {
String s = sc.next();
System.out.println("string: " + s);
}
}

请注意,小数点分隔符取决于区域设置。

关于java - 以任意顺序接受用户的任意数据类型(int、float、string),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44789471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com