欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java中String.format()方法详解

程序员文章站 2022-07-14 23:52:26
...
  • 前言

        从 Java 5.0 开始,String 类新增了一个强大的字符串格式化方法 format()。这个方法到现在用的人还是不多,实在是一种浪费。下面就是这个方法的使用方式,将来要用到格式化文本的时候,可能就不需要再借用第三方类库或自己去实现了。

  • 例子

String stringToken= String.format("https://api.weixin.qq.com/sns/oauth2/access_token?"
			+ "appid=%s&secret=%s&code=%s&grant_type=authorization_code", appId, appSecret, code);

  •  解释

    • 这个方法第一个参数是格式串,后面的参数都是格式串的参数,用于替换格式串中的占位符。
    • 占位符以 "%x" 的形式表示,不同的参数类型要用不同的字母。后面会具体介绍。
    • String.format() 返回值类型为字符串,也就是格式化的结果。
  • 优点

    • 增强了代码的可读性。

  • 注意

    • 这个方法的执行效率低于StringBuilder.append(),因此,建议字符串的拼接不是很多时使用String.format()方法。如果字符串很多则建议使用StringBuilder.append()方法。

 

  • 例子

    public class StringDemo {
    	public static void main(String[] args) {
                //System.nanoTime():获取当前时间的纳秒值
    		Long time1 = System.nanoTime();
    		String string = String.format("https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code", "张","无","忌");
    		Long time2 = System.nanoTime();
    		System.out.println(string+"\nString.format的执行时间:"+(time2-time1)+"ns");
    		
    		Long time3 = System.nanoTime();
    		StringBuilder sb = new StringBuilder ();
    		sb.append("https://api.weixin.qq.com/sns/oauth2/access_token?appid=").append("张").append("&secret=").append("无").append("&code=")
    		.append("忌").append("&grant_type=authorization_code");
    		Long time4 = System.nanoTime();
    		System.out.println(sb.toString()+"\nStringBuilder的执行时间:"+(time4-time3)+"ns");
    	}
    }
  • 结果 

https://api.weixin.qq.com/sns/oauth2/access_token?appid=张&secret=无&code=忌&grant_type=authorization_code
String.format的执行时间:19683180ns
https://api.weixin.qq.com/sns/oauth2/access_token?appid=张&secret=无&code=忌&grant_type=authorization_code
StringBuilder的执行时间:6564ns
  • 常用的类型以及转换符

转换符

详细说明

示例

%s

字符串类型

“喜欢请收藏”

%c

字符类型

‘m’

%b

布尔类型

true

%d

整数类型(十进制)

88

%x

整数类型(十六进制)

FF

%o

整数类型(八进制)

77

%f

浮点类型

8.888

%a

十六进制浮点类型

FF.35AE

%e

指数类型

9.38e+5

%g

通用浮点类型(f和e类型中较短的)

不举例(基本用不到)

%h

散列码

不举例(基本用不到)

%%

百分比类型

%(%特殊字符%%才能显示%)

%n

换行符

不举例(基本用不到)

%tx

日期与时间类型(x代表不同的日期与时间转换符)

不举例(基本用不到)


 

相关标签: String