gpt4 book ai didi

java - 在 java Scanner.next() 中

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

public class Calculator
{

public static void main(String[] args)
{
boolean isValid = false;
Scanner myScanner = new Scanner(System.in);
String customerType = null;
System.out.print("Customer Type? (C/R) ");
customerType = myScanner.next();
while (isValid == false)
{
System.out.print("Enter Subtotal: ");

if (myScanner.hasNextDouble())
{
double sobTotal = myScanner.nextDouble();
isValid = true;
}
else
{
System.out
.println("Hay! Entry error please enter a valid number");
}
myScanner.nextLine();
}
}
}

嗨,我是 java 新手,像往常一样,我在 Scanner 类中尝试一些东西。

有没有办法查看扫描仪的输入?因为我在上面的代码中遇到了问题,正如您所看到的。这是我输入错误数据后控制台窗口的输出。我输入的是 KKK 而不是数字,有人可以解释一下为什么我两次收到此错误消息吗?

"this is the console" 
Customer Type? (C/R) R
Enter Subtotal: KKK
Hay! Entry error please enter a valid number
Enter Subtotal: Hay! Entry error please enter a valid number
Enter Subtotal:

最佳答案

按如下方式更改您的代码。

boolean isValid = false;
Scanner myScanner = new Scanner(System.in);
String customerType = null;
System.out.print("Customer Type? (C/R) ");
customerType = myScanner.next();

while (!isValid)
{
System.out.print("Enter Subtotal: ");

if (myScanner.hasNext())
{
try
{
double sobTotal =Double.parseDouble(myScanner.next());
isValid = true;
}
catch(Exception e)
{
System.out.println("Hay! Entry error please enter a valid number");
}
}
}

当您使用 Scanner.nextDouble() 时,它本身不会消耗新行(或其他分隔符),因此返回的下一个标记通常是空字符串。

关于java - 在 java Scanner.next() 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11633185/

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