gpt4 book ai didi

java - system.in.read 未执行

转载 作者:行者123 更新时间:2023-12-01 07:33:27 25 4
gpt4 key购买 nike

为什么在第一个循环之后,开关会执行两次然后停止等待我的输入?标准输入中是否还有剩余的字符?我该如何解决这个问题?

while(true)
{
int choice = System.in.read();
switch(choice)
{
case '1':
break;
default:
break;
}
}

最佳答案

InputStream#read只读取单个字节并且不会消耗换行符(在Windows平台上将是2个字符,LFCR),将其传递给到下一个阅读。此读取现在不会阻止接收输入,并且流程将落入您的默认情况。

您可以使用 BufferedReader 来代替并读取整行:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
...
int choice = Integer.parseInt(br.readLine());

关于java - system.in.read 未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15296637/

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