Java中的String.format()方法根据指定的语言环境、格式和参数返回格式化的字符串。

如果在String.format()方法中没有指定语言环境,它将使用默认语言环境,通过调用Locale.getDefault()方法来获取。

format()方法在Java语言中类似于C语言中的sprintf()函数和Java语言中的printf()方法。它可以按照指定的格式将参数插入到字符串中,并返回格式化后的字符串。

内部实现

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

语法

有两种类型的string format()方法:

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

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

参数

locale:指定应用于 format() 方法的 locale。

format:字符串格式。

args:格式字符串的参数。可以是零个或多个。

返回值

格式化后的字符串。

抛出异常

NullPointerException:如果 format 为 null。

IllegalFormatException:如果 format 非法或不兼容。

Java String的format()方法示例

public class FormatExample {
  public static void main(String args[]) {
    String name = "sonoo";
    String sf1 = String.format("名字是%s", name);
    String sf2 = String.format("值为%f", 32.33434);
    String sf3 = String.format("值为%32.12f", 32.33434);//返回12位小数部分,填充0
    
    System.out.println(sf1);
    System.out.println(sf2);
    System.out.println(sf3);
  }
}

测试结果为:

名字是sonoo
值为32.334340
值为                  32.334340000000

Java String format() 方法示例2

这个方法支持多种数据类型,并将它们格式化成字符串类型。让我们看一个例子。

public class FormatExample2 {  
    public static void main(String[] args) {  
        String str1 = String.format("%d", 101);          // Integer value  
        String str2 = String.format("%s", "Amar Singh"); // 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
Amar Singh
101.000000
65
c

Java String format()方法示例3

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

public class FormatExample3 {  
    public static void main(String[] args) {          
        String str1 = String.format("%d", 101);  
        String str2 = String.format("|%10d|", 101);  // 指定整数的长度  
        String str3 = String.format("|%-10d|", 101); // 左对齐指定宽度内  
        String str4 = String.format("|% d|", 101);   
        String str5 = String.format("|%010d|", 101); // 用零填充  
        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|

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想