English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java String format()方法根据传递的参数返回格式化的字符串。
String format()方法的语法为:
String.format(String format, Object... args)
ملاحظة:
format()是静态方法。我们使用类名String调用format()方法。
在上面的代码中,... 表示可以向format()传递多个对象。
format - 格式字符串
args - 0个或更多参数
返回格式化的字符串
class Main { public static void main(String[] args) { String language = "Java"; int number = 30; String result; // 将对象格式化为字符串 result = String.format("Language: %s", language); System.out.println(result); // Language: Java //将数字格式化为十六进制数字 result = String.format("十六进制数: %x", number); // 1e System.out.println(result); // 十六进制数: 1e } }
在上面的程序中,注意代码
result = String.format("Language: %s", language);
这"Language: %s"是一个格式字符串。
将格式字符串中的%s替换为language内容。%s是格式说明符。
同样,%x替换为String.format("Number: %x", number)中number的十六进制值。
以下是常用的格式说明符:
说明符 | 描述 |
---|---|
%b, %B | 根据参数为“ true”或“ false” |
%s, %S | 一个字符串 |
%c, %C | Unicode字符 |
%d | 十进制整数(仅用于整数) |
%o | 八进制整数(仅用于整数) |
%x, %X | 十六进制整数(仅用于整数) |
%e, %E | 用于科学计数法(用于浮点数) |
%f | 用于十进制数字(用于浮点数) |
class Main { public static void main(String[] args) { int n1 = 47; float ٢ ٣ = ٣.864f; double ٢ ٣ ٤ = ٤45343435.76d; //格式为八进制数字 System.out.println(String.format("n1的八进制: %o", n1)); // 57 //格式为十六进制数字 System.out.println(String.format("n1的十六进制: %x", n1)); // 2f System.out.println(String.format("n1的十六进制: %X", n1)); // 2F //格式化为字符串 System.out.println(String.format("n1作为字符串: %s", n1)); // 47 System.out.println(String.format("n2作为字符串: %s", n2)); // 35.864 //科学记数格式 System.out.println(String.format("n3科学计数法: %g", n3)); // 4.45343e+07 } }
نتيجة الإخراج
n1的八进制: 57 n1的十六进制: 2f n1的十六进制: 2F n1作为字符串: 47 n2作为字符串: 35.864 n3科学计数法: 4.45343e+07
您可以在格式字符串中使用多个格式说明符。
//使用多个格式说明符 //格式字符串 class Main { public static void main(String[] args) { int n1 = 47; String text = "Result"; System.out.println(String.format("%s 十六进制: %x", text, n1)); } }
نتيجة الإخراج
Result 十六进制: 2f
此处,%%s被替换为text的值。 同样,%%o被替换为n1的十六进制值。
class Main { public static void main(String[] args) { float n1 = -452.534f; double n2 = -345.766d; //按原样格式化浮点数 System.out.println(String.format("n1 = %f", n1)); // -452.533997 System.out.println(String.format("n2 = %f", n2)); // -345.766000 //显示到小数点后两位 System.out.println(String.format("n1 = %.2f", n1)); // -452.53 System.out.println(String.format("n2 = %.2f", n2)); // -345.77 } }
نتيجة الإخراج
n1 = -452.533997 n2 = -345.766000 n1 = -452.53 n2 = -345.77
ملاحظة:عند استخدام تنسيق الفورمات -452.534، نحصل على -452.533997. هذا ليس بسبب طريقة format(). لا يقدم Java تمثيلاً دقيقاً للعدد العشري.
عند استخدام معرف التنسيق %.2f، يقدم format() اثنين من الأرقام بعد النقطة.
// using more than one format specifiers // in a format string class Main { public static void main(String[] args) { int n1 = 46, n2 = -46; String result; // ملء الرقم بالمسافات // طول الكلمة هو 5 result = String.format("|%5d|", n1); // | 46| System.out.println(result); // ملء الرقم بـ 0 // طول الكلمة هو 5 result = String.format("|%05d|", n1); // |00046| System.out.println(result); // استخدام الرمز قبل العدد result = String.format("%+d", n1); // +46 System.out.println(result); result = String.format("%+d", n2); // -46 System.out.println(result); // وضع العدد السالب بين الأقواس // وإزالة الرمز result = String.format("%(d", n2); // (46) System.out.println(result); } }
// قبل استخدام الستة عشر استخدم 0x // قبل استخدام الثمانية استخدم 0 class Main { public static void main(String[] args) { int n = 46; System.out.println(String.format("%#o", n)); // 056 System.out.println(String.format("%#x", n)); // 0x2e } }
إذا كان من الضروري استخدام بيئة اللغة المحددة، فإن طريقة String format() لديها جملة أخرى.
String.format(Locale l, String format, Object... args)
//استخدام Locale import java.util.Locale; class Main { public static void main(String[] args) { int number = 8652145; String result; //استخدام بيئة اللغة الحالية result = String.format("الرقم: %,d", number); System.out.println(result); //استخدام بيئة اللغة GERMAN كمعامل أول result = String.format(Locale.GERMAN, "الرقم الألماني: %,d", number); System.out.println(result); } }
نتيجة الإخراج
الرقم: 8,652,145 الرقم الألماني: 8.652.145
ملاحظة:في ألمانيا، يستخدم . بدلاً من , للعدد.