Ввод с клавиатуры java
Привет! Решаю задачки в java через intelijidea. Нужно внести с клавиатуры два числа, могу ли я сам как-то их ввести, чтобы проверить вывод? Дело в том, что при решении задачи вывод не показывается, т.к. нет внесенных с клавиатуры данных, только результат компиляции. Спасибо.
public class Solution < public static void main(String[] args) throws Exception < BufferedReader reader = new BufferedReader( new InputStreamReader (System.in)); String numa = reader.readLine(); int num1 = Integer.parseInt(numa); String numb = reader.readLine(); int num2 = Integer.parseInt(numb); for (int i = 1; i System.out.println(); > > >
Отслеживать
задан 13 ноя 2015 в 18:43
Maksim Korkodinov Maksim Korkodinov
395 1 1 золотой знак 6 6 серебряных знаков 17 17 бронзовых знаков
Ну а чего нет-то? Для отладки временно присвойте какие-то значения своим переменным сами вручника и все, а те поля временно закоментируйте
13 ноя 2015 в 18:54
В IDEA есть консоль. Что не так?
Ввод данных с клавиатуры в Java: способы с примерами

При работе с приложениями или сайтами, пользователям необходимо вводить свои данные: почту, пароль, день рождения и так далее. В Java применяются несколько способов ввода данных с клавиатуры: c помощью метода readLine() класса BufferedReader или метода nextLine() класса Scanner. Разберем подробнее, как работают эти методы.
Курс Python basic.
Після курсу ви зможете впевнено працювати з чатботами, скриптами, вбудованими системами, веб- та мобільними застосунками, а також навіть ігровими програмами.
Метод readLine()
BufferedReader readLine() применяется для чтения одной строки текста, который пользователь ввел с консоли. Конец строки в коде может быть указан как Enter, так и \n , \r или EOF — end of file.
BufferedReader readLIne() работает только со строками в коде. А метод Scanner nextLine() считывает и другие типы данных, например, int, long, double, float.
BufferedReader работает немного быстрее по сравнению со Scanner, потому что nextLine() анализирует данные, а readLine() просто считывает последовательность символов.
Так работает readLine():
Це хороший спосіб розвитку вашої кар’єри в IT-індустрії. Після проходження курсу Mate гарантує вам офер мрії.
// Java program to illustrate // BufferedReader readLine() method import java.io.*; public class GFG < public static void main(String[] args) < // Read the stream 'demo.txt' // containing text // "GEEKS" // "FOR" // "GEEKS" FileReader fileReader = new FileReader( "c:/demo.txt"); // Convert fileReader to // bufferedReader BufferedReader buffReader = new BufferedReader( fileReader); while (buffReader.ready()) < System.out.println( buffReader.readLine()); >> >
GEEKS FOR GEEKS
И на экран, соответственно, выводится:
GEEKS FOR GEEKS
Метод nextLine()
NextLine() в Java применяется для класса Scanner. Этот метод так же, как и readLine(), нужен для получения и чтения данных, написанных пользователем. Чтобы применить nextLine(), в коде нужно прописать объект Scanner.
Этот метод читает и воспроизводит данные до конца строки. Другими словами, он может считывать информацию до тех пор, пока не начнется новая строка или старая не будет разорвана с помощью \n или Enter.
Вот как nextLine() работает в Java:
public class Main < public static void main(String[] args) < Scanner scanner = new Scanner("Дни бегут, мы выходим в поле,\n" + "Птицы в небе и дети в школе,\n" + "Шум и пение, тьма и свет,\n" + "Сердце новое, смерти нет"); String s = scanner.nextLine(); System.out.println(s); >>
Что пишет пользователь:
Дни бегут, мы выходим в поле Птицы в небе и дети в школе Шум и пение, тьма и свет Сердце новое, смерти нет
Что показывает программа:
Дни бегут, мы выходим в поле
Метод nextLine работает с данными только одной строки, поэтому остальное стихотворение теряется из-за разрыва между предложениями и перехода на новую строчку.
Чтобы показать стих полностью, нужно написать следующий код:
Це хороший спосіб розвитку вашої кар’єри в IT-індустрії. Після проходження курсу Mate гарантує вам офер мрії.
public class Main < public static void main(String[] args) < Scanner scanner = new Scanner("Дни бегут, мы выходим в поле,\n" + "Птицы в небе и дети в школе,\n" + "Шум и пение, тьма и свет,\n" + "Сердце новое, смерти нет"); String s = scanner.nextLine(); System.out.println(s); s = scanner.nextLine(); System.out.println(s); s = scanner.nextLine(); System.out.println(s); s = scanner.nextLine(); System.out.println(s); >>
Классы-обертки в Java
Класс-обертка — это класс, объект которого содержит примитивные типы данных. Когда мы создаем объект для класса-обертки, он содержит поле, в котором мы можем хранить примитивные типы данных.
Как работают классы-обертки:
- Они преобразуют примитивные типы данных в объекты. Это необходимо, когда мы хотим изменить аргументы, передаваемые через метод (поскольку примитивные типы передаются только через value).
- В пакете java.util классы могут обрабатывать только объекты, и в этом случае помогут обертки.
В коде процесс создания классов-оберток выглядят так:
// Java program to demonstrate Autoboxing import java.util.ArrayList; class Autoboxing < public static void main(String[] args) < char ch = 'a'; // Autoboxing- primitive to Character object conversion Character a = ch; ArrayListarrayList = new ArrayList(); // Autoboxing because ArrayList stores only objects arrayList.add(25); // printing the values from object System.out.println(arrayList.get(0)); > >
А если нужно совершить обратный процесс и преобразовать класс-обертку в примитивный тип, то придется совершить unboxing или распаковку данных:
// Java program to demonstrate Unboxing import java.util.ArrayList; class Unboxing < public static void main(String[] args) < Character ch = 'a'; // unboxing - Character object to primitive conversion char a = ch; ArrayListarrayList = new ArrayList(); arrayList.add(24); // unboxing because get method returns an Integer object int num = arrayList.get(0); // printing the values from primitive data types System.out.println(num); > >
Курс Аналітик даних.
Протягом 4 місяців ви вивчите повний набір інструментів для аналізу даних та отримаєте можливість працевлаштування в Laba Group.
Java — Ввод числа с консоли
Наиболее простой способ — использовать готовый класс java.util.Scanner . Пример использования:
import java.util.Scanner; public class Main < public static void main(String[] args) < Scanner scanner = new Scanner(System.in); while (true) < System.out.println( "Выберете пункт меню:" + "\n" + "1. . \n" + "2. . \n" + ); int choice = scanner.nextInt(); switch (choice) < case 1: // . break; case 2: // . break; >> > >
При вводе чисел таким образом в буфере клавиатуры остается символ переноса строки и последующий ввод строки с помощью Scanner.nextLine() приводит к считыванию пустой строки. Добавим функцию ввода строки, игнорирующей пустые строки, поместим ее в модуль Common : Содержимое Common.java :
import java.util.Scanner; class Common < public static String readNotEmptyString(Scanner scanner) < String string = ""; while (string.length() == 0) < string = scanner.nextLine(); >return string; > >
Использование BufferedReader
Строка в Java может быть преобразована в целое или дробное число методами:
Double.parseDouble(String); Integer.parseInt(String);
Ввод строки удобно организовать в виде отдельной функции, как это показано в следующей программе:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main < public static void main(String[] args) < int a; double b; System.out.print("enter integer: "); a = Integer.parseInt(getString()); System.out.print("enter double: "); b = Double.parseDouble(getString()); double sum = a+b; System.out.println("sum: " + sum); >public static String getString() < try < BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); return br.readLine(); >catch (IOException ex) < System.out.println("I/O Error!"); >return null; > >
AlekseyDanilov / Solution.java
Вводить с клавиатуры числа и считать их сумму, пока пользователь не введет слово «сумма». Вывести на экран полученную сумму.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
| package com . javarush . task . task05 . task0529 ; |
| import java . io . BufferedReader ; |
| import java . io . InputStreamReader ; |
| /* |
| Вводить с клавиатуры числа и считать их сумму, пока пользователь не введет слово «сумма». |
| Вывести на экран полученную сумму. |
| */ |
| public class Solution |
| public static void main ( String [] args ) throws Exception |
| BufferedReader reader = new BufferedReader ( new InputStreamReader ( System . in )); |
| int s = 0 ; |
| while ( true ) |
| String i1 = reader . readLine (); |
| if ( i1 . equals ( «сумма» )) |
| > |
| else |
| int i = Integer . parseInt ( i1 ); |
| s += i ;> |
| if ( i1 . equals ( «сумма» )) |
| System . out . println ( s ); |
| break ; |
| > |
| > |
| > |
| > |