gpt4 book ai didi

Java System.out.println 在使用 System.in.read() 时重复了 3 次

转载 作者:行者123 更新时间:2023-11-29 10:02:51 26 4
gpt4 key购买 nike

我在使用以下代码时遇到问题:

public class DWDemo {
public static void main(String[] args) throws java.io.IOException {
char ch;

do {
System.out.print("Press a key followed by enter: ");
ch = (char) System.in.read(); // get the char
} while (ch != 'q');
}
}

出于某种原因,System.out 行重复了 3 次。控制台的示例输出如下:

Press a key followed by enter: a
Press a key followed by enter: Press a key followed by enter: Press a key followed by enter:

我已经在 Eclipse Kepler 中尝试过这段代码,并且手动编译时遇到了同样的问题。谷歌搜索答案已被证明是徒劳的。有什么想法吗?

添加了正确的代码

如果我输入超过 1 个字符,我会得到 4 个 System.out.println 结果:

Press a key followed by enter: aa 
Press a key followed by enter: Press a key followed by enter: Press a key followed by enter: Press a key followed by enter:

最佳答案

所以你按 a 并回车。然后你会读到这些字符

  • 字符'a'
  • 字符'\r'
  • 字符'\n'

(这适用于 Windows,例如在 *nix 系统上,换行符只是一个 '\n' 而不是\r\n)

你可以跳过,例如所有空格:

 do {
System.out.print("Press a key followed by enter: ");
ch = (char) System.in.read();
while(Character.isWhitespace(ch)) {
ch = (char) System.in.read();
}
} while (ch != 'q');

关于Java System.out.println 在使用 System.in.read() 时重复了 3 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18475671/

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