我想使用 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);
另请参见Java教程-缓冲流,刷新缓冲流的一部分内容如下:
某些缓冲输出类支持自动刷新,可以通过一个可选的构造函数参数来指定。启用自动刷新后,某些关键事件会导致缓冲区被刷新。例如,一个启用了自动刷新的
PrintWriter
对象在每次调用println
或format
时都会刷新缓冲区。
flush()
时遇到了问题,而且我有一些代码会立即退出(不是用 boolean
而是用 printf()
)。但也可能是因为咖啡。 - Elliott Frisch好消息是它输出了值为true
,你的想象代码没有问题。或者,你也可以尝试
boolean car = true;
System.out.print(car);
System.out.printf("%b", car);
boolean car =true;
System.out.println(""+car);