Форматирование строк в Java

JavaJavaBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В Java метод String.format() форматирует строку с использованием комбинации строки форматирования, локали и аргументов. Строка форматирования задает формат, в который аргументы должны быть преобразованы, а локаль задает любые настройки, которые должны быть использованы, такие как язык или регион. В этом практическом занятии мы узнаем больше о том, как использовать метод String.format() для форматирования строк.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java/BasicSyntaxGroup -.-> java/output("Output") java/StringManipulationGroup -.-> java/strings("Strings") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/date("Date") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/exceptions("Exceptions") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/format("Format") java/SystemandDataProcessingGroup -.-> java/string_methods("String Methods") subgraph Lab Skills java/output -.-> lab-117958{{"Форматирование строк в Java"}} java/strings -.-> lab-117958{{"Форматирование строк в Java"}} java/date -.-> lab-117958{{"Форматирование строк в Java"}} java/exceptions -.-> lab-117958{{"Форматирование строк в Java"}} java/format -.-> lab-117958{{"Форматирование строк в Java"}} java/string_methods -.-> lab-117958{{"Форматирование строк в Java"}} end

Создание простого примера форматирования строк

В этом шаге мы создадим базовый пример использования метода String.format() для форматирования строки.

  1. Создайте новый Java-файл с именем SimpleFormatExample.java в каталоге ~/project.
  2. В методе main() класса SimpleFormatExample создайте переменную строки под названием formattedString и присвойте ей результат вызова String.format() с такими аргументами:
    1. Строку "Hello, %s!" в качестве строки форматирования.
    2. Строку "world" в качестве аргумента.
  3. Выведите значение formattedString с использованием System.out.println().
  4. Сохраните и закройте файл SimpleFormatExample.java.
  5. В терминале скомпилируйте файл SimpleFormatExample.java, выполнив следующую команду: javac SimpleFormatExample.java.
  6. Затем запустите класс-файл с помощью команды java SimpleFormatExample.

Вот код:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("Hello, %s!", "world");
        System.out.println(formattedString);
    }
}

При запуске кода вы должны увидеть следующий вывод:

Hello, world!

Использование аргументов в строке форматирования

В этом шаге мы узнаем, как использовать аргументы в строке форматирования для настройки вывода.

  1. Откройте файл SimpleFormatExample.java в редакторе.
  2. Измените переменную formattedString, чтобы использовать аргумент для количества символов для отображения. Замените "s" в строке форматирования на ".%d-s" для указания максимального количества символов для отображения.
  3. Добавьте целый аргумент после строки форматирования, чтобы представить максимальное количество символов для отображения.
  4. Сохраните и закройте файл SimpleFormatExample.java.
  5. В терминале скомпилируйте файл SimpleFormatExample.java, выполнив следующую команду: javac SimpleFormatExample.java.
  6. Затем запустите класс-файл с помощью команды java SimpleFormatExample.

Вот модифицированный код:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("Hello, %d-s!", 5);
        System.out.println(formattedString);
    }
}

При запуске кода вы должны увидеть следующий вывод:

Hello, 5-s!

Использование флагов для изменения поведения форматирования

В этом шаге мы узнаем, как использовать флаги для изменения поведения строки форматирования.

  1. Откройте файл SimpleFormatExample.java в редакторе.
  2. Измените строку форматирования, чтобы выровнять текст по левому краю, добавив знак минус (-) после знака %.
  3. Добавьте аргумент к строке форматирования, чтобы указать минимальную ширину вывода.
  4. Сохраните и закройте файл SimpleFormatExample.java.
  5. В терминале скомпилируйте файл SimpleFormatExample.java, выполнив следующую команду: javac SimpleFormatExample.java.
  6. Затем запустите класс-файл с помощью команды java SimpleFormatExample.

Вот модифицированный код:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("%-10s, world!", "Hello");
        System.out.println(formattedString);
    }
}

При запуске кода вы должны увидеть следующий вывод:

Hello    , world!

Использование символов преобразования для форматирования различных типов данных

В этом шаге мы узнаем, как использовать различные символы преобразования для форматирования различных типов данных.

  1. Откройте файл SimpleFormatExample.java в редакторе.
  2. Измените строку форматирования, чтобы включить вещественное число с использованием символа преобразования %f.
  3. Добавьте аргумент с вещественным числом после строки форматирования.
  4. Сохраните и закройте файл SimpleFormatExample.java.
  5. В терминале скомпилируйте файл SimpleFormatExample.java, выполнив следующую команду: javac SimpleFormatExample.java.
  6. Затем запустите класс-файл с помощью команды java SimpleFormatExample.

Вот модифицированный код:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("The value of pi is approximately %f", 3.14159265359);
        System.out.println(formattedString);
    }
}

При запуске кода вы должны увидеть следующий вывод:

The value of pi is approximately 3.141593

Использование модификаторов точности для управления количеством цифр

В этом шаге мы узнаем, как использовать модификаторы точности для управления количеством цифр, отображаемых в отформатированном выводе.

  1. Откройте файл SimpleFormatExample.java в редакторе.
  2. Измените строку форматирования, чтобы включить вещественное число с использованием символа преобразования %f. Добавьте модификатор точности (%.2f), чтобы отобразить только две цифры после десятичной точки.
  3. Добавьте аргумент с вещественным числом после строки форматирования.
  4. Сохраните и закройте файл SimpleFormatExample.java.
  5. В терминале скомпилируйте файл SimpleFormatExample.java, выполнив следующую команду: javac SimpleFormatExample.java.
  6. Затем запустите класс-файл с помощью команды java SimpleFormatExample.

Вот модифицированный код:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("The value of pi is approximately %.2f", 3.14159265359);
        System.out.println(formattedString);
    }
}

При запуске кода вы должны увидеть следующий вывод:

The value of pi is approximately 3.14

Использование локалей для настройки параметров форматирования

В этом шаге мы узнаем, как использовать локали для настройки параметров форматирования, таких как язык или регион.

  1. Откройте файл SimpleFormatExample.java в редакторе.
  2. Измените строку форматирования, чтобы включить число и использовать символ преобразования %d.
  3. Добавьте целый аргумент после строки форматирования.
  4. Добавьте второй аргумент в метод String.format(), чтобы указать локаль для использования. Используйте константу Locale.FRENCH, чтобы указать французский язык.
  5. Сохраните и закройте файл SimpleFormatExample.java.
  6. В терминале скомпилируйте файл SimpleFormatExample.java, выполнив следующую команду: javac SimpleFormatExample.java.
  7. Затем запустите класс-файл с помощью команды java SimpleFormatExample.

Вот модифицированный код:

import java.util.Locale;

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format(Locale.FRENCH, "Le nombre est %d", 123456789);
        System.out.println(formattedString);
    }
}

При запуске кода вы должны увидеть следующий вывод:

Le nombre est 123456789

Форматирование значений дат и времени

В этом шаге мы узнаем, как использовать метод String.format() для форматирования значений дат и времени.

  1. Откройте файл SimpleFormatExample.java в редакторе.
  2. Добавьте инструкцию импорта для класса java.util.Calendar, который мы будем использовать для создания экземпляра календаря.
  3. Создайте новый экземпляр Calendar с использованием Calendar.getInstance().
  4. Измените строку форматирования, чтобы включить дату с использованием символа преобразования %tD.
  5. Добавьте аргумент Date после строки форматирования, используя метод calendar.getTime(), чтобы получить значение Date.
  6. Сохраните и закройте файл SimpleFormatExample.java.
  7. В терминале скомпилируйте файл SimpleFormatExample.java, выполнив следующую команду: javac SimpleFormatExample.java.
  8. Затем запустите класс-файл с помощью команды java SimpleFormatExample.

Вот модифицированный код:

import java.util.Calendar;
import java.util.Date;

public class SimpleFormatExample {
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        String formattedString = String.format("%tD", calendar.getTime());
        System.out.println(formattedString);
    }
}

При запуске кода вы должны увидеть следующий вывод:

08/22/21

Форматирование с использованием заглавных и строчных букв

В этом шаге мы узнаем, как использовать символы преобразования %S и %s для форматирования строк в верхнем и нижнем регистрах соответственно.

  1. Откройте файл SimpleFormatExample.java в редакторе.
  2. Измените строку форматирования, чтобы включить строку с использованием символа преобразования %S для форматирования строки в верхнем регистре.
  3. Измените строку форматирования, чтобы включить вторую строку с использованием символа преобразования %s для форматирования строки в нижнем регистре.
  4. Сохраните и закройте файл SimpleFormatExample.java.
  5. В терминале скомпилируйте файл SimpleFormatExample.java, выполнив следующую команду: javac SimpleFormatExample.java.
  6. Затем запустите класс-файл с помощью команды java SimpleFormatExample.

Вот модифицированный код:

public class SimpleFormatExample {
    public static void main(String[] args) {
        String formattedString = String.format("The word %S is in uppercase and %s is in lowercase", "HELLO", "world");
        System.out.println(formattedString);
    }
}

При запуске кода вы должны увидеть следующий вывод:

The word HELLO is in uppercase and world is in lowercase

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

В этом шаге мы узнаем о исключениях, которые могут быть брошены при использовании метода String.format(), и о том, как их обрабатывать.

  1. Откройте файл SimpleFormatExample.java в редакторе.
  2. Измените строку форматирования, чтобы включить символ с использованием символа преобразования %c.
  3. Добавьте аргумент с символом после строки форматирования.
  4. Сохраните и закройте файл SimpleFormatExample.java.
  5. В терминале скомпилируйте файл SimpleFormatExample.java, выполнив следующую команду: javac SimpleFormatExample.java.
  6. Затем запустите класс-файл с помощью команды java SimpleFormatExample.

Вот модифицированный код:

public class SimpleFormatExample {
    public static void main(String[] args) {
        try {
            String formattedString = String.format("The character is %c", "too long");
            System.out.println(formattedString);
        } catch (Exception e) {
            System.out.println("An exception occurred: " + e.getMessage());
        }
    }
}

При запуске кода вы должны увидеть следующий вывод:

An exception occurred: UString.format: '%c'!= java.base/java.lang.String

Резюме

В этом практическом занятии мы узнали, как использовать метод String.format() для форматирования строк в Java. Начнем с создания простого примера, в котором использовалась строка форматирования и аргументы для генерации строки. Затем мы узнали, как использовать различные символы преобразования для форматирования строк, а также модификаторы точности и флаги для управления выводом. Мы также узнали, как использовать локали для настройки параметров форматирования и как форматировать значения дат и времени. Наконец, мы обсудили некоторые исключения, которые могут быть брошены при использовании метода String.format(), и как их обрабатывать.