Java 字符串常用方法

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

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

java语言的format()方法类似于c语言的sprintf()函数和java语言的printf()方法。

语法

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

参数


  • locale :指定要应用于 format() 方法的语言环境。
  • format : 字符串的格式。
  • args :格式字符串的参数。它可能为零或更多。

返回值

格式化后的字符串

抛出异常


  • NullPointerException : 如果格式为空。
  • IllegalFormatException : 如果格式非法或不兼容。

内部实现

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

方法示例1

public class FormatExample{
    public static void main(String args[]){
        String name="yxjc123";
        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);
        
        System.out.println(sf1);
        System.out.println(sf2);
        System.out.println(sf3);
    }
}
name is yxjc123
value is 32.334340
value is                  32.334340000000

Java字符串格式说明符

在这里,我们提供了一个 Java 字符串支持的格式说明符表。

格式说明符数据类型输出
%a浮点数(除了BigDecimal返回浮点数的十六进制输出。
%b任何类型如果非空则为"真",如果为空则为"假"
%c字符Unicode 字符
%d整数(包括字节、短整数、整数、长整数、大整数)十进制整数
%e浮点数科学计数法中的十进制数
%f浮点数十进制数
%g浮点数十进制数,可能采用科学计数法,具体取决于精度和值。
%h任何类型来自 hashCode() 方法的值的十六进制字符串。
%n特定于平台的行分隔符。
%o整数(包括字节、短整数、整数、长整数、大整数)八进制数
%s任何类型字符串值
%t日期/时间(包括 long、Calendar、Date 和 TemporalAccessor)%t 是日期/时间转换的前缀。在此之后需要更多的格式化标志。请参阅下面的日期/时间转换。
%x整数(包括字节、短整数、整数、长整数、大整数)

十六进制字符串。

方法示例2

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

public class FormatExample2 {
  public static void main(String[] args) {
    String str1 = String.format("%d", 101); 		 // 整数值
    String str2 = String.format("%s", "Amar Singh"); // 字符串值
    String str3 = String.format("%f", 101.00);     // 浮点值
    String str4 = String.format("%x", 101);      // 十六进制值
    String str5 = String.format("%c", 'c');      // 字符值
    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

方法示例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|