Java ввод вывод консоль

Консольный ввод/вывод, импорт пакетов

Наиболее простой способ взаимодействия с пользователем представляет консоль: мы можем выводить в консоль некоторую информацию или, наоборот, считывать из консоли какие-либо данные.

  • System.out.print – вывод данных без перехода на следующую строку;
  • System.out.println – вывод данных с переходом на новую строку;
  • System.out.printf – форматированный вывод данных.
System.out.print("Hello "); System.out.print("World!");

то в консоле мы увидим сообщение «Hello World!» в одну строку, без переноса строк, так как метод print не выполняет автоматический перенос на следующую строку. Правда мы можем сделать это самостоятельно, если пропишем символ ‘\n’ – перевода строки после первого слова «Hello»:

В этом случае второе слово будет отображаться на следующей строке. Запомним этот символ переноса строки. Это универсальный символ, который применяется повсюду, а не только в этой функции. Если же нам нужно вывести сообщение в строку с автоматическим переходом на новую строку, то вместо print следует использовать метод println:

System.out.println("Hello"); System.out.print("World!");

Смотрите, здесь нет символа перевода строки, но слово «World!» все равно отобразилось с новой строки. Вот в этом отличие между print и println. Далее, с помощью этих функций можно выводить значения переменных, используя такие варианты:

short x = 5; double y = 4.5; System.out.println(x); System.out.println("x = " + x); System.out.println("x = " + x + ", y = " + y);

Вот эти плюсы здесь означают соединение двух строк, т.е. в конец первой строки добавляется вторая (либо числовое значение переменной, которое затем будет представлено в виде единой строки). Наконец, для тех кто знаком с языком С/С++ в Java есть функция printf, которая работает также и служит для форматированного вывода информации в консоль. Синтаксис этого метода такой: System.out.printf(<шаблон формата>, [список аргументов]); Например, мы можем вывести переменные x и y с помощью этой функции так:

short x = 5; double y = 4.5; float z = 1.2f; System.out.printf("x = %d, y = %f, z = %.2f\n", x, y, z);
  • %d – для целочисленных значений;
  • %f – для вещественных значений;
  • %.nf –вывод вещественного значения с точностью до n-го знака после запятой;
  • %c – для отдельного символа (тип char);
  • %s – для строк;
  • %% — вывод процентов.

Но каждый раз вот так прописывать java.util.Scanner не очень то удобно. Поэтому мы сделаем так. Импортируем этот пакет с классом Scanner в нашу программу:

Читайте также:  Дубли страниц index php

Далее, мы здесь создаем новый объект Scanner с помощью оператора new и будем работать с этим объектом через ссылку in на него. Позже в других уроках мы еще будем подробнее говорить о создании объектов и ссылках на них. Сейчас просто запомните, что вот так создаются объекты в Java. Теперь через ссылку in мы можем обращаться к открытым методам объекта Scanner. Например, для ввода целочисленных значений, достаточно записать:

Мы здесь объявляем переменную num и сразу ее инициализируем значением, введенным с клавиатуры. То есть, метод nextInt() объекта Scanner реализует ввод целочисленного значения и, затем, возвращает полученный результат. Далее, выведем введенное значение в консоль, чтобы убедиться, что все работает:

System.out.printf("Your number: %d \n", num);
  • next(): считывает введенную строку до первого пробела;
  • nextLine(): считывает введенную строку до перевода строки;
  • nextByte(): считывает введенное число как byte;
  • nextShort(): считывает введенное число как short;
  • nextInt(): считывает введенное число как тип int;
  • nextDouble(): считывает введенное число как double;
  • nextFloat(): считывает введенное число как float;
  • nextBoolean(): считывает значение boolean.
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.print("Input name: "); String name = in.nextLine(); System.out.print("Input age: "); int age = in.nextInt(); System.out.print("Input height: "); float height = in.nextFloat(); System.out.printf("Name: %s Age: %d Height: %.2f \n", name, age, height); in.close(); } }

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

Источник

Java ввод вывод консоль

Наиболее простой способ взаимодействия с пользователем представляет консоль: мы можем выводить на консоль некоторую информацию или, наоборот, считывать с консоли некоторые данные. Для взаимодействия с консолью в Java применяется класс System , а его функциональность собственно обеспечивает консольный ввод и вывод.

Читайте также:  Html border right heights

Вывод на консоль

Для создания потока вывода в класс System определен объект out . В этом объекте определен метод println , который позволяет вывести на консоль некоторое значение с последующим переводом курсора консоли на следующую строку. Например:

В метод println передается любое значение, как правило, строка, которое надо вывести на консоль. И в данном случае мы получим следующий вывод:

При необходимости можно и не переводить курсор на следующую строку. В этом случае можно использовать метод System.out.print() , который аналогичен println за тем исключением, что не осуществляет перевода на следующую строку.

Консольный вывод данной программы:

Но с помощью метода System.out.print также можно осуществить перевод каретки на следующую строку. Для этого надо использовать escape-последовательность \n:

System.out.print("Hello world \n");

Нередко необходимо подставлять в строку какие-нибудь данные. Например, у нас есть два числа, и мы хотим вывести их значения на экран. В этом случае мы можем, например, написать так:

public class Program < public static void main(String[] args) < int x=5; int y=6; System.out.println("x=" + x + "; y console"> 
x=5; y=6

Но в Java есть также функция для форматированного вывода, унаследованная от языка С: System.out.printf() . С ее помощью мы можем переписать предыдущий пример следующим образом:

int x=5; int y=6; System.out.printf("x=%d; y=%d \n", x, y);

В данном случае символы %d обозначают спецификатор, вместо которого подставляет один из аргументов. Спецификаторов и соответствующих им аргументов может быть множество. В данном случае у нас только два аргумента, поэтому вместо первого %d подставляет значение переменной x, а вместо второго - значение переменной y. Сама буква d означает, что данный спецификатор будет использоваться для вывода целочисленных значений.

Кроме спецификатора %d мы можем использовать еще ряд спецификаторов для других типов данных:

  • %x : для вывода шестнадцатеричных чисел
  • %f : для вывода чисел с плавающей точкой
  • %e : для вывода чисел в экспоненциальной форме, например, 1.3e+01
  • %c : для вывода одиночного символа
  • %s : для вывода строковых значений

При выводе чисел с плавающей точкой мы можем указать количество знаков после запятой, для этого используем спецификатор на %.2f , где .2 указывает, что после запятой будет два знака. В итоге мы получим следующий вывод:

Name: Tom Age: 30 Height: 1,70

Ввод с консоли

Для получения ввода с консоли в классе System определен объект in . Однако непосредственно через объект System.in не очень удобно работать, поэтому, как правило, используют класс Scanner , который, в свою очередь использует System.in . Например, напишем маленькую программу, которая осуществляет ввод чисел:

import java.util.Scanner; public class Program < public static void main(String[] args) < Scanner in = new Scanner(System.in); System.out.print("Input a number: "); int num = in.nextInt(); System.out.printf("Your number: %d \n", num); in.close(); >>

Так как класс Scanner находится в пакете java.util , то мы вначале его импортируем с помощью инструкции import java.util.Scanner .

Для создания самого объекта Scanner в его конструктор передается объект System.in . После этого мы можем получать вводимые значения. Например, в данном случае вначале выводим приглашение к вводу и затем получаем вводимое число в переменную num.

Чтобы получить введенное число, используется метод in.nextInt(); , который возвращает введенное с клавиатуры целочисленное значение.

Input a number: 5 Your number: 5

Класс Scanner имеет еще ряд методов, которые позволяют получить введенные пользователем значения:

  • next() : считывает введенную строку до первого пробела
  • nextLine() : считывает всю введенную строку
  • nextInt() : считывает введенное число int
  • nextDouble() : считывает введенное число double
  • nextBoolean() : считывает значение boolean
  • nextByte() : считывает введенное число byte
  • nextFloat() : считывает введенное число float
  • nextShort() : считывает введенное число short

То есть для ввода значений каждого примитивного типа в классе Scanner определен свой метод.

Например, создадим программу для ввода информации о человеке:

import java.util.Scanner; public class Program < public static void main(String[] args) < Scanner in = new Scanner(System.in); System.out.print("Input name: "); String name = in.nextLine(); System.out.print("Input age: "); int age = in.nextInt(); System.out.print("Input height: "); float height = in.nextFloat(); System.out.printf("Name: %s Age: %d Height: %.2f \n", name, age, height); in.close(); >>

Здесь последовательно вводятся данные типов String, int, float и потом все введенные данные вместе выводятся на консоль. Пример работы программы:

Input name: Tom Input age: 34 Input height: 1,7 Name: Tom Age: 34 Height: 1,70

Обратите внимание, что для ввода значения типа float (то же самое относится к типу double) применяется число "1,7", где разделителем является запятая, а не "1.7", где разделителем является точка. В данном случае все зависит от текущей языковой локализации системы. В моем случае русскоязычная локализация, соответственно вводить необходимо числа, где разделителем является запятая. То же самое касается многих других локализаций, например, немецкой, французской и т.д., где применяется запятая.

Источник

Оцените статью