【发布时间】:2014-11-30 02:44:39
【问题描述】:
我想用printf 打印一个boolean 值,但我不知道怎么做。我正在寻找的是类似这样的虚构代码
boolean car = true;
System.out.printf("%b",car);
预期的输出应该是:
true
我该怎么做?或者有没有其他方法可以获得预期的输出?
【问题讨论】:
-
您的“虚构代码”对我来说很好用。请详细说明您当前的问题是什么。
我想用printf 打印一个boolean 值,但我不知道怎么做。我正在寻找的是类似这样的虚构代码
boolean car = true;
System.out.printf("%b",car);
预期的输出应该是:
true
我该怎么做?或者有没有其他方法可以获得预期的输出?
【问题讨论】:
我假设您遇到了缓冲问题,因此您的程序在缓冲区刷新之前退出。当您使用 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对象在每次调用println或format时刷新缓冲区。
【讨论】:
flush() 并且我确实有立即退出的代码(不是boolean 而是printf())时,我遇到了这个问题。还有咖啡。
boolean car =true;
System.out.println(""+car);
【讨论】:
好消息是它打印了值true,你的虚构代码没有任何问题。或者你也可以试试
boolean car = true;
System.out.print(car);
System.out.printf("%b", car);
【讨论】: