java基础-String.format的格式化与进制转换

在我们对一些字符串格式话的时候,会用到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:**是代表十六进制。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容