Метод Java String format () возвращает отформатированную строку на основе переданного аргумента.
Синтаксис format()метода String :
String.format(String format, Object… args)
Вот,
format()это статический метод. Мы вызываемformat()метод, используя имя классаString.…в приведенном выше коде означает, что вы можете передать более одного объектаformat().
format () Параметры
format()Метод принимает два параметра.
- format - строка формата
- args - 0 или более аргументов
format () Возвращаемое значение
- возвращает отформатированную строку
Пример 1: формат строки Java ()
class Main ( public static void main(String() args) ( String language = "Java"; int number = 30; String result; // format object as a string result = String.format("Language: %s", language); System.out.println(result); // Language: Java // format number as a hexadecimal number result = String.format("Hexadecimal Number: %x", number); // 1e System.out.println(result); // Hexadecimal Number: 1e ) )
В приведенной выше программе обратите внимание на код
result = String.format("Language: %s", language);
Здесь "Language: %s"есть строка формата .
%sв строке формата заменяется содержанием языка. %s- спецификатор формата.
Аналогично %xзаменяется шестнадцатеричным значением числа в String.format("Number: %x", number).
Спецификаторы формата
Вот обычно используемые спецификаторы формата:
| Спецификатор | Описание |
|---|---|
%b, %B | "true"или "false"на основании аргумента |
%s, %S | строка |
%c, %C | символ Unicode |
%d | десятичное целое число (используется только для целых чисел) |
%o | восьмеричное целое число (используется только для целых чисел) |
%x, %X | шестнадцатеричное целое число (используется только для целых чисел) |
%e, %E | для экспоненциальной записи (используется для чисел с плавающей запятой) |
%f | для десятичных чисел (используется для чисел с плавающей запятой) |
Пример 2: Строковое форматирование чисел
class Main ( public static void main(String() args) ( int n1 = 47; float n2 = 35.864f; double n3 = 44534345.76d; // format as an octal number System.out.println(String.format("n1 in octal: %o", n1)); // 57 // format as hexadecimal numbers System.out.println(String.format("n1 in hexadecimal: %x", n1)); // 2f System.out.println(String.format("n1 in hexadecimal: %X", n1)); // 2F // format as strings System.out.println(String.format("n1 as string: %s", n1)); // 47 System.out.println(String.format("n2 as string: %s", n2)); // 35.864 // format in scientific notation System.out.println(String.format("n3 in scientific notation: %g", n3)); // 4.45343e+07 ) )
Вывод
n1 в восьмеричном: 57 n1 в шестнадцатеричном: 2f n1 в шестнадцатеричном: 2F n1 в виде строки: 47 n2 в виде строки: 35,864 n3 в экспоненциальном представлении: 4.45343e + 07
В строке формата можно использовать несколько описателей формата.
Пример 3: Использование нескольких описателей формата
// using more than one format specifiers // in a format string class Main ( public static void main(String() args) ( int n1 = 47; String text = "Result"; System.out.println(String.format("%shexadecimal: %x", text, n1)); ) )
Вывод
Результат в шестнадцатеричном формате: 2f
Здесь %sзаменяется значением текста. Аналогично %oзаменяется шестнадцатеричным значением n1.
Работа в формате Java String ()
Пример 4: Форматирование десятичных чисел
class Main ( public static void main(String() args) ( float n1 = -452.534f; double n2 = -345.766d; // format floating-point as it is System.out.println(String.format("n1 = %f", n1)); // -452.533997 System.out.println(String.format("n2 = %f", n2)); // -345.766000 // show up to two decimal places 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 с помощью %f, мы получаем -452.533997 . Это не из-за format()метода. Java не возвращает точное представление чисел с плавающей запятой.
Когда используется %.2fописатель формата, format()выдает два числа после десятичной точки.
Пример 5: заполнение чисел пробелами и 0
// 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; // padding number with spaces // the length of the string will be 5 result = String.format("|%5d|", n1); // | 46| System.out.println(result); // padding number with numbers 0 // the length of the string will be 5 result = String.format("|%05d|", n1); // |00046| System.out.println(result); // using signs before numbers result = String.format("%+d", n1); // +46 System.out.println(result); result = String.format("%+d", n2); // -46 System.out.println(result); // enclose negative number within parenthesis // and removing the sign result = String.format("%(d", n2); // (46) System.out.println(result); ) )
Пример 6: Использование 0x и 0 перед шестнадцатеричным и восьмеричным числами
// using 0x before hexadecimal // using 0 before octal 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 ) )
Формат строки Java () с локалью
У format()метода String также есть другой синтаксис, если вам нужно работать с указанной локалью.
String.format(Locale l, String format, Object… args)
Пример 7: Использование НЕМЕЦКОГО языкового стандарта в формате ()
// to use Locale import java.util.Locale; class Main ( public static void main(String() args) ( int number = 8652145; String result; // using the current locale result = String.format("Number: %,d", number); System.out.println(result); // using the GERMAN locale as the first argument result = String.format(Locale.GERMAN, "Number in German: %,d", number); System.out.println(result); ) )
Вывод
Номер: 8,652,145 Номер на немецком языке: 8,652,145
Примечание. В Германии целые числа разделяются знаком .вместо ,.








