在我们对一些字符串格式话的时候,会用到String.format(String format, Object... args),这里我们简单记录下能将字符串格式化为什么数据。
在前面的文章java数据类型中写过String是由多个char组成的对象,在java中,针对String提供了很多方法,其中format就可以将这个对象转化为不同的格式。
String.format方法:
/**
* Returns a formatted string using the specified format string and
* arguments.
* @param format
* @param args
* @return A formatted string
*
* @see java.util.Formatter
* @since 1.5
*/
public static String format(String format, Object... args) {
return new Formatter().format(format, args).toString();
}
/**
* Returns a formatted string using the specified locale, format string,
* and arguments.
*
* @param l
*
* @param format
* @param args
* @return A formatted string
*
* @see java.util.Formatter
* @since 1.5
*/
public static String format(Locale l, String format, Object... args) {
return new Formatter(l).format(format, args).toString();
}
两个方法都有的参数:
format:格式化的标准,或需要格式化为什么格式。
args:需要转换的参数,如果传入的参数多于需要转换的标准,则多传入的参数就会被忽略。
第二个方法中的参数:
l:这个参数将传入Formatter的构造方法中,构建不同的Formatter,它就是java中正常用来格式化的类。
对于Formatter,现在理解不够,等有实际使用的时候,再记录相关功能。
format参数的种类
在java.util.Formatter的源码中有很多不同的类型,我这里记录一下比较常用的,大家有需要不同的,可以去源码中查看。
参数 | 说明 |
---|---|
%x | 十六进制 |
%d | 十进制整数 |
%o | 八进制 |
%f | 十进制浮点 |
%a | 十六进制浮点 |
%c | 字符 |
%s | 字符串 |
将序列号1转为16进制,长度为8字节(16位长度)。
代码:
String.format("%016x",1)
分析:
**0:** format的特殊标识,表示使用0补齐。(除了用0补齐,还可以使用空格)
**16:**指长度是16位。可以是任意十进制整数。
**x:**是代表十六进制。