Java String format()

format() 用于创建格式化的字符串以及连接多个字符串对象。

1 语法

public static String format(String format, Object... args)  

public static String format(Locale locale, String format, Object... args)  

2 参数

locale:指定要在format() 方法上应用的语言环境。

format:字符串的格式。

args:格式字符串的参数。可能为零或更大。

3 返回值

格式化后的字符串

4 format()内部源码

public static String format(String format, Object... args) {  
       return new Formatter().format(format, args).toString();  
}  

5 format()示例1

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * Java String.format方法的例子
 */
public class Demo{

    public static void main(String args[]){
        String name="yiidian";
        String sf1=String.format("name is %s",name);
        String sf2=String.format("value is %f",32.33434);
        String sf3=String.format("value is %32.12f",32.33434);//返回0填充的12个字符小数部分

        System.out.println(sf1);
        System.out.println(sf2);
        System.out.println(sf3);
    }
}

输出结果为:

name is yiidian
value is 32.334340
value is                  32.334340000000

5.1 Java字符串格式化符号

格式化符号 数据类型 输出结果
%a 浮点类型 返回浮点数的十六进制输出。
%b 任何类型 如果为非null,则为“ true”;如果为null,则为“ false”
%c 字符串类型 Unicode字符
%d 整数类型(十进制) 十进制整数
%e 指数类型 科学计数法中的十进制数
%f 浮点类型 十进制数
%g 通用浮点类型(f和e类型中较短的) 十进制数,可能以科学计数法表示,取决于精度和值。
%h 散列码 十六进制hashCode()方法中的值的字符串。
%n 换行符 特定平台的换行分隔符。
%o 整数类型(八进制) 八进制数
%s 字符串类型 字符串值
%t 日期和时间类型 %t是日期/时间转换的前缀。
%x 整数类型(十六进制) 十六进制字符串。

6 format()示例2

format() 方法支持各种数据类型并将其格式化为字符串类型。让我们来看一个例子。

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * Java String.format方法的例子
 */
public class Demo {

    public static void main(String[] args) {
        String str1 = String.format("%d", 101);          // Integer value
        String str2 = String.format("%s", "Yiidian"); // String value
        String str3 = String.format("%f", 101.00);       // Float value
        String str4 = String.format("%x", 101);          // Hexadecimal value
        String str5 = String.format("%c", 'c');          // Char value
        System.out.println(str1);
        System.out.println(str2);
        System.out.println(str3);
        System.out.println(str4);
        System.out.println(str5);
    }

}

输出结果为:

101
Yiidian
101.000000
65
c

7 format()示例3

除了格式化外,我们还可以设置任何值的宽度,填充等。让我们看一个为整数设置宽度和填充的示例。

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
/**
 * Java String.format方法的例子
 */
public class Demo {

    public static void main(String[] args) {
        String str1 = String.format("%d", 101);
        String str2 = String.format("|%10d|", 101);  // Specifying length of integer
        String str3 = String.format("|%-10d|", 101); // Left-justifying within the specified width
        String str4 = String.format("|% d|", 101);
        String str5 = String.format("|%010d|", 101); // Filling with zeroes
        System.out.println(str1);
        System.out.println(str2);
        System.out.println(str3);
        System.out.println(str4);
        System.out.println(str5);
    }
}

输出结果为:

101
|       101|
|101       |
| 101|
|0000000101|

 

热门文章

优秀文章