📜  java字符串之-format()

📅  最后修改于: 2020-09-26 05:47:04             🧑  作者: Mango

Java字符串format()

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

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

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

内部实现

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

Signature(签名)

字符串 format()方法有两种类型:

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

参数

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

format: 字符串的格式。

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

返回值或类型

格式化字符串

Throws(异常对象)

NullPointerException:如果format为null。

IllegalFormatException:如果格式非法或不兼容。

Java String format()方法示例

public class FormatExample{
public static void main(String args[]){
String name=sonoo;
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);//returns 12 char fractional part filling with 0

System.out.println(sf1);
System.out.println(sf2);
System.out.println(sf3);
}}
name is sonoo
value is 32.334340
value is                  32.334340000000

Java字符串格式说明符

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

Format Specifier Data Type Output
%a floating point (except BigDecimal) Returns Hex output of floating point number.
%b Any type “true” if non-null, “false” if null
%c character Unicode character
%d integer (incl. byte, short, int, long, bigint) Decimal Integer
%e floating point decimal number in scientific notation
%f floating point decimal number
%g floating point decimal number, possibly in scientific notation depending on the precision and value.
%h any type Hex String of value from hashCode() method.
%n none Platform-specific line separator.
%o integer (incl. byte, short, int, long, bigint) Octal number
%s any type String value
%t Date/Time (incl. long, Calendar, Date and TemporalAccessor) %t is the prefix for Date/Time conversions. More formatting flags are needed after this. See Date/Time conversion below.
%x integer (incl. byte, short, int, long, bigint) Hex string.

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);  // 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|