我想用boolean
打印printf
值,但我不知道怎么做。我正在寻找的是像这个虚构的代码
boolean car = true;
System.out.printf("%b",car);
预期输出应为:
true
我该怎么办?或者还有其他方法可以获得预期的输出吗?
答案 0 :(得分:7)
我认为您遇到了缓冲问题,因此您的程序会在缓冲区刷新之前退出。当您使用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 ,由可选的构造函数参数指定。启用autoflush时,某些键事件会导致刷新缓冲区。例如,autoflush
PrintWriter
对象会在每次调用println
或format
时刷新缓冲区。
答案 1 :(得分:3)
好处是它打印了值true
,你的虚构代码没有任何问题。或者你也可以尝试
boolean car = true;
System.out.print(car);
System.out.printf("%b", car);
答案 2 :(得分:-2)
boolean car =true;
System.out.println(""+car);