Вывод и ввод данных в консоль Java
Консоль (console) в Java обеспечивает простое и удобное взаимодействия с пользователем. С помощью консоли можно выводить какую-нибудь информацию либо, напротив, используя консоль, считывать данные. В этой статье будет рассказано о том, как осуществляется ввод и вывод данных в консоли Java.
Чтобы обеспечивать взаимодействие с консолью, в языке программирования Java используют класс System.
Вывод на консоль в Java
Чтобы создать потока вывода в вышеупомянутый класс System, вам понадобится специальный объект out. В нём определен метод println, обеспечивающий вывод значения на консоль и перевод курсора консоли на другую строку.
Рассмотрим практический пример с Hello world:
public class Main { public static void main(String[] args) { System.out.println("Привет, мир!"); System.out.println("Пока, мир..."); } }
Что здесь происходит? В метод println осуществляется передача значения (в нашем случае это строка), которое пользователь желает вывести в консоль Java. Консольный вывод данных в Джава будет следующий:
Привет, мир! Пока, мир...
Выполнять перевод строки не обязательно. Если необходимость в этом отсутствует, применяют метод
public class Main { public static void main(String[] args) { System.out.print("Привет, мир!"); System.out.print("Пока, мир..."); } }
Вывод в консоли Java:
Привет, мир!Пока, мир...
Однако никто не мешает, используя System.out.print, всё же выполнить перенос на следующую строку. Как вариант — использование \n:
System.out.print("Привет, мир! \n");
Также есть возможность подставить в строку Ява данные, которые объявлены в переменных. Вот, как это реализуется:
public class Main { public static void main(String[] args) { int i = 10; int y = 99; System.out.println("i=" + i + "; y=" + y); } }
В консоли увидим:
i=10; y=99
Ещё в Java существует функция, предназначенная для форматирования вывода в консоли, —
Спецификаторы: • %d — для вывода в консоль целочисленных значений; • %x — для 16-ричных чисел; • %f — выводятся числа с плавающей точкой; • %e — для чисел в экспоненциальной форме (1.3e+01); • %c — вывод в консоль одиночного символа; • %s — вывод в консоль строковых значений.
Рассмотрим, как это функционирует на практике:
public class Main { public static void main(String[] args) { String name = "Bob"; int age = 40; float height = 1.8f; System.out.printf("Name: %s Age: %d Height: %.2f \n", name, age, height); } }
Когда осуществляется вывод в консоль Java значений с плавающей точкой, есть возможность задать количество знаков после запятой. Спецификатор %.2f (точнее, «.2») определяет, что будет 2 знака после запятой. Вывод в консоль Java будет следующим:
Name: Bob Age: 40 Height: 1.80
Ввод с консоли Java или как ввести данные с консоли Джавы
Чтобы обеспечить ввод с консоли Java, в классе System есть объект in. Именно через объект System.in работать не очень удобно, поэтому часто применяют класс Scanner. Он уже, в свою очередь, как раз таки и применяет System.in.
Рассмотрим практический пример:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("Введите любой номер: "); int num = in.nextInt(); System.out.printf("Ваш номер: %d \n", num); in.close(); } }
Сам по себе класс Scanner хранится в пакете java.util, поэтому в начале кода мы выполняем его импорт посредством команды import java.util.Scanner.
Для создания непосредственно объекта Scanner в его конструктор осуществляется передача объекта System.in. Далее можно получать значения. В нашей мини-программе сначала выводится просьба ввести номер, а потом введённое пользователем число помещается в переменную num (для получения введённого значения задействуется метод
Лучше всего попробовать работу этой программы с помощью одного из многочисленных онлайн-компиляторов.
Работать она будет простейшим образом: 1. Сначала вы увидите сообщение в консоли «Введите любой номер:». 2. После ввода числа (пускай это будет 8) в консоли появится второе сообщение — «Ваш номер: 8».
Для класса Scanner предусмотрены и другие методы: • next() — для считывания введённой строки до первого пробела; • nextLine() — для всей введённой строки; • nextInt() — считывает введённое число int; • nextDouble() — для double; • nextBoolean() — для boolean; • nextByte() — для byte; • nextFloat() — для float; • nextShort() — для short.
Давайте напишем простую программу, обеспечивающую ввод информационных данных о человеке в консоль Java:
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("Введите имя: "); String name = in.nextLine(); System.out.print("Введите возраст: "); int age = in.nextInt(); System.out.print("Введите вес: "); float height = in.nextFloat(); System.out.printf("Name: %s Age: %d Height: %.1f \n", name, age, height); in.close(); } }
В этой программке пользователь последовательно вводит данные разных типов: String, int и float. Потом вся информация выводится в консоль Java:
Введите имя: Андрей Введите возраст: 39 Введите вес: 89 Name: Андрей Age: 39 Height: 89.0
Вот и всё. Это базовые вещи, если же вас интересуют более продвинутые знания, записывайтесь на курс OTUS в Москве.