今天碰到一道编程题,顺序打印出0-31的五位二进制数,不足五位的二进制数高位补零,我首先想到的是用整型包装了Integer.toBinaryString(int n)外套一次for循环输出32个二进制数,但是这样输出后的结果不太符合要求
for(int i=0;i<32;i++)
{
String s=Integer.toBinaryString(i)
System.out.println(s);
}
后来了解到可以对字符串String使用format函数格式化,先上改过的代码和结果:
for(int i=0;i<32;i++)
{
String s=Integer.toBinaryString(i);
System.out.print(String.format("%0"+5+"d", Integer.parseInt(s))+"-");
}
**public static String format(String format,Object args)**函数是用于格式化字符串的文本工具,功能强大。
首先看jdk中对format函数的介绍:参数format是一个String ,它可能包含固定文本和一个或多个嵌入式格式说明符。
一般,字符和数字类型的格式说明符具有以下语法: %[argument_index
”,第二个为“ 2$ ”等。 (用于指定对索引位置相应的参数进行格式化)
可选标志是修改输出格式的一组字符。 该组有效标志取决于转换。
可选的宽度是一个正十进制整数,表示要写入输出的最小字符数。
可选精度是通常用于限制字符数的非负十进制整数。 具体行为取决于转换。 所需的转换是一个字符,指示参数应如何格式化。 给定参数的一组有效转换取决于参数的数据类型。
具体对字符串、整数、浮点数、日期时间以及其他数据的格式化常用的占位符各字段,详见这个网站所整理的,非常清楚了。