
// Версия: Консоль от 15.07.2026 г.

// package prus.ввод_вывод;


import java.io.*;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;

/**
 * Набор статических методов, которые обеспечивают удобный доступ к System.in и System.out для ввода и вывода, ориентированных на строку.
 * Используется UTF-8.
 * Применяется для JDK 25 и выше.
 */

public class Консоль {



    private Консоль() { throw new Error("нет случаев");}
//----------------------------------------------
    /**
     * Печатает объект в консоль.
     */
    public static void печать(Object объект) {System.out.print(объект);}
    /**
     * Печатает объект в консоль.
     */
    public static void вывод(Object объект) {System.out.print(объект);}
//----------------------------------------------
    /**
     * Печатает объект в консоль и переходит на следующую строчку.
     */
    public static void печатьлн(Object объект) {System.out.println(объект);}
    /**
     * Печатает объект в консоль и переходит на следующую строчку.
     */
    public static void выводлн(Object объект) {System.out.println(объект);}
    /**
     * Печатает объект в консоль и переходит на следующую строчку.
     */
    public static void печатьпс(Object объект) {System.out.println(объект);}
    /**
     * Печатает объект в консоль и переходит на следующую строчку.
     */
    public static void выводпс(Object объект) {System.out.println(объект);}
//---------------------------------------------------------------------------------------
    /**
     * Переход на следующую строку.
     */
    public static void выводлн() {System.out.println();}
    /**
     * Переход на следующую строку.
     */
    public static void печатьлн() {System.out.println();}
    /**
     * Переход на следующую строку.
     */
    public static void печатьпс() {System.out.println();}
     /**
     * Переход на следующую строку.
     */
    public static void переход_строки() {System.out.println();}
     /**
     * Переход на следующую строку.
     */
    public static void пс() {System.out.println();}
//-----------------------------------------------------------------------------------------
     /**
     * Ввод строки текста и переход на следующую строку.
     */
    public static String вводлн(String подсказка) { печать(подсказка); return readln();}
     /**
     * Ввод строки текста и переход на следующую строку.
     */
    public static String ввод(String подсказка) { печать(подсказка); return readln();}
     /**
     * Ввод строки текста и переход на следующую строку.
     */
    public static String вводпс(String подсказка) { печать(подсказка); return readln();}


    public static String readln() {
    try {
        return reader().readLine();
    } catch (IOException ioe) {
        throw new IOError(ioe);
    }
}

    private static BufferedReader br;

    static synchronized BufferedReader reader() {
        if (br == null) {
            String enc = System.getProperty("stdin.encoding", "");
            Charset cs = Charset.forName(enc, StandardCharsets.UTF_8);
            br = new BufferedReader(new InputStreamReader(System.in, cs));
        }
        return br;
    }

 //---------------------------------------------------------------------------------------------------------------------------------------------------
     /**
     * Метод для форматирования строки.
     * Типы форматируемого значения
     * %s - Любой тип, который будет приведен к строке - String.format("Привет %s!","мир")
     * %b - Любой тип, который будет приведен к boolean: true — если значение не null, false — если null - String.format("Привет %b!",null)
     * %h - Можно передавать любой объект, который будет приведен к шестнадцатеричной строке значения из метода hashCode ()  - String.format("Привет %h!","мир")
     * %c - Используется для задания символа Unicode (char) - String.format("Привет м%cр!",'и')
     * %d - Задается целое число (int. byte, short, int, long, BigInteger) - String.format("Мне уже %d!",20)
     * %f - Используется для задания числа с плавающей запятой - String.format("Число ПИ равно -  %f!", 3.14159)
     * %e
     * %a
     * %x
     *
     *

     */
    public static String формат(String форматированная_строка, Object... аргументы) {return String.format(форматированная_строка, аргументы);}
    /**
     * В Java существует функция, предназначенная для форматирования вывода в консоли, — System.out.printf().
     * При использовании со спецификаторами, она позволяет добиться нужного формата вывода.
     * Спецификаторы:
     *  %d — для вывода в консоль целочисленных значений;
     *   %x — для 16-ричных чисел;
     *   %f — выводятся числа с плавающей точкой;
     *   %e — для чисел в экспоненциальной форме (1.3e+01);
     *   %c — вывод в консоль одиночного символа;
     *   %s — вывод в консоль строковых значений.
     */
    public static void печатьлнф(String форматированная_строка, Object... аргументы) {System.out.println(String.format(форматированная_строка, аргументы));}
     /**
     * В Java существует функция, предназначенная для форматирования вывода в консоли, — System.out.printf().
     * При использовании со спецификаторами, она позволяет добиться нужного формата вывода.
     * Спецификаторы:
     *  %d — для вывода в консоль целочисленных значений;
     *   %x — для 16-ричных чисел;
     *   %f — выводятся числа с плавающей точкой;
     *   %e — для чисел в экспоненциальной форме (1.3e+01);
     *   %c — вывод в консоль одиночного символа;
     *   %s — вывод в консоль строковых значений.
     */
    public static void выводлнф(String форматированная_строка, Object... аргументы) {System.out.println(String.format(форматированная_строка, аргументы));}
     /**
     * В Java существует функция, предназначенная для форматирования вывода в консоли, — System.out.printf().
     * При использовании со спецификаторами, она позволяет добиться нужного формата вывода.
     * Спецификаторы:
     *  %d — для вывода в консоль целочисленных значений;
     *   %x — для 16-ричных чисел;
     *   %f — выводятся числа с плавающей точкой;
     *   %e — для чисел в экспоненциальной форме (1.3e+01);
     *   %c — вывод в консоль одиночного символа;
     *   %s — вывод в консоль строковых значений.
     */
    public static void печатьпсф(String форматированная_строка, Object... аргументы) {System.out.println(String.format(форматированная_строка, аргументы));}
        /**
     * В Java существует функция, предназначенная для форматирования вывода в консоли, — System.out.printf().
     * При использовании со спецификаторами, она позволяет добиться нужного формата вывода.
     * Спецификаторы:
     *  %d — для вывода в консоль целочисленных значений;
     *   %x — для 16-ричных чисел;
     *   %f — выводятся числа с плавающей точкой;
     *   %e — для чисел в экспоненциальной форме (1.3e+01);
     *   %c — вывод в консоль одиночного символа;
     *   %s — вывод в консоль строковых значений.
     */
    public static void выводпсф(String форматированная_строка, Object... аргументы) {System.out.println(String.format(форматированная_строка, аргументы));}
    /**
     * В Java существует функция, предназначенная для форматирования вывода в консоли, — System.out.printf().
     * При использовании со спецификаторами, она позволяет добиться нужного формата вывода.
     * Спецификаторы:
     *  %d — для вывода в консоль целочисленных значений;
     *   %x — для 16-ричных чисел;
     *   %f — выводятся числа с плавающей точкой;
     *   %e — для чисел в экспоненциальной форме (1.3e+01);
     *   %c — вывод в консоль одиночного символа;
     *   %s — вывод в консоль строковых значений.
     */
    public static void печатьф(String форматированная_строка, Object... аргументы) {System.out.print(String.format(форматированная_строка, аргументы));}
        /**
     * В Java существует функция, предназначенная для форматирования вывода в консоли, — System.out.printf().
     * При использовании со спецификаторами, она позволяет добиться нужного формата вывода.
     * Спецификаторы:
     *  %d — для вывода в консоль целочисленных значений;
     *   %x — для 16-ричных чисел;
     *   %f — выводятся числа с плавающей точкой;
     *   %e — для чисел в экспоненциальной форме (1.3e+01);
     *   %c — вывод в консоль одиночного символа;
     *   %s — вывод в консоль строковых значений.
     */
    public static void выводф(String форматированная_строка, Object... аргументы) {System.out.print(String.format(форматированная_строка, аргументы));}
//-----------------------------------------------------------------------------------------------------------------------------------------------------

     /**
     * Остановить закрытие консольного окна (Ожидание ввода строки).
     */
      public static void стоп(){
      System.out.println("");
      String cr = readln();
      }
 //------------------------------------------------------------------------------------





}


