【问题标题】:Print a boolean value with printf [closed]使用 printf 打印布尔值 [关闭]
【发布时间】:2014-11-30 02:44:39
【问题描述】:

我想用printf 打印一个boolean 值,但我不知道怎么做。我正在寻找的是类似这样的虚构代码

boolean car = true;
System.out.printf("%b",car);

预期的输出应该是:

true

我该怎么做?或者有没有其他方法可以获得预期的输出?

【问题讨论】:

  • 您的“虚构代码”对我来说很好用。请详细说明您当前的问题是什么。

标签: java boolean printf


【解决方案1】:

我假设您遇到了缓冲问题,因此您的程序在缓冲区刷新之前退出。当您使用 printf()print() 时,它不一定会在没有换行符的情况下刷新。您可以使用明确的flush()

boolean car = true;
System.out.printf("%b",car);
System.out.flush();

或添加一个新行(这也会导致flush()

boolean car = true;
System.out.printf("%b%n",car);

另请参阅Buffered Streams - The Java Tutorials刷新缓冲流其中部分内容

一些缓冲输出类支持 autoflush,由可选的构造函数参数指定。启用自动刷新时,某些关键事件会导致刷新缓冲区。例如,自动刷新PrintWriter 对象在每次调用printlnformat 时刷新缓冲区。

【讨论】:

  • 你的 ESP 能力比我强很多。
  • @HovercraftFullOfEels 这可能是我喝的所有咖啡。另外,当我没有flush() 并且我确实有立即退出的代码(不是boolean 而是printf())时,我遇到了这个问题。还有咖啡。
【解决方案2】:
boolean car =true;

System.out.println(""+car);

【讨论】:

    【解决方案3】:

    好消息是它打印了值true,你的虚构代码没有任何问题。或者你也可以试试

    boolean car = true;
    System.out.print(car);
    System.out.printf("%b", car);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 2019-07-31
      • 1970-01-01
      • 1970-01-01
      • 2017-02-28
      • 1970-01-01
      相关资源
      最近更新 更多