Java字符串格式化(String.format)

今天碰到一道编程题,顺序打印出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 ] [ f l a g s ] [ w i d t h ] [ . p r e c i s i o n ] c o n v e r s i o n a r g u m e n t i n d e x 1 ][flags][width][.precision]conversion argument_index是一个十进制整数,表示参数在参数列表中的位置。 第一个参数为“ 1 ”,第二个为“ 2$ ”等。 (用于指定对索引位置相应的参数进行格式化)
可选标志是修改输出格式的一组字符。 该组有效标志取决于转换。
可选的宽度是一个正十进制整数,表示要写入输出的最小字符数。
可选精度是通常用于限制字符数的非负十进制整数。 具体行为取决于转换。 所需的转换是一个字符,指示参数应如何格式化。 给定参数的一组有效转换取决于参数的数据类型。

具体对字符串、整数、浮点数、日期时间以及其他数据的格式化常用的占位符各字段,详见这个网站所整理的,非常清楚了。

http://www.cnblogs.com/fsjohnhuang/p/4094777.html

猜你喜欢

转载自blog.csdn.net/weixin_42416780/article/details/85371066