English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной курс Java

Java Управление потоком

Java Массив

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений в Java

Java Список (List)

Java Queue (очередь)

Java Map-сборники

Java Set-сборники

Java Вход/Выход (I/O)

Java Reader/Writer

Другие темы Java

Метод String format() в Java: использование и примеры

Java методы String (строки)

Метод String format() в Java возвращает отформатированную строку на основе переданных параметров.

Синтаксис метода String format():

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

Внимание:

  • format() - это статический метод. Мы вызываем метод format() через имя класса String.

  • В предыдущем коде, ... означает, что можно передавать несколько объектов в format().

Параметры format()

  • format - Строка формата

  • args - 0 или более параметров

Возврат format()

  • Возвращает отформатированную строку

Пример 1: Java String format()

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 заменяется шестнадцатеричным значением number в String.format("Number: %x", number).

Символ формата

Вот некоторые常用的 символы формата:

СимволОписание
%b, %BВ зависимости от параметра "true" или "false"
%s, %SОдна строка
%c, %CUnicode символ
%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;
    //Форматирование в восьмеричное число
    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

Вы можете использовать несколько форматных спецификаторов в строке формата.

Пример 3: использование нескольких форматных спецификаторов

//Использование нескольких форматных спецификаторов
//Строка формата
class Main {
  public static void main(String[] args) {
    int n1 = 47;
    String text = "Результат";
    System.out.println(String.format("%s
Шестнадцатеричное: %x", text, n1));
  {}
{}

Результат вывода

Результат
Шестнадцатеричное: 2f

Здесь, %s заменяется значением text. Точно так же, %o заменяется шестнадцатеричным значением n1.

Работа Java String format()

Пример 4: форматирование десятичных чисел

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 с помощью %f, мы получаем -452.533997. Это не из-за метода format(). Java не возвращает точное представление чисел с плавающей запятой.

При использовании спецификатора формата %.2f функция format() предоставляет два числа после десятичной точки.

Пример 5: Заполнение чисел пробелами и 0

// Использование более одного спецификатора формата
// В формате строки
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);
  {}
{}

Пример 6: Использование 0x и 0 перед шестнадцатеричной и восьмеричной системами счисления

// Использование 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
  {}
{}

Java строка format() с лингвистической средой

Если необходимо использовать указанную лингвистическую среду, то метод String format() также имеет другой синтаксис.

String.format(Locale l, String format, Object... args)

Пример 7: Использование GERMAN языковой среды в format()

//Использование 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

Внимание:В Германии, целые числа заменяются точкой.

Java методы String (строки)