Я попытался создать калькулятор, но не могу заставить его работать, потому что не знаю как получить ввод данных пользователем.
Как я могу получить пользовательский ввод в Java?
Один из самых простых способов - использовать объект Scanner
следующим образом:
import java.util.Scanner;
Scanner reader = new Scanner(System.in); // Reading from System.in
System.out.println("Enter a number: ");
int n = reader.nextInt(); // Scans the next token of the input as an int.
//once finished
reader.close();
Вы можете использовать любой из следующих вариантов в зависимости от требований.
Scanner
classimport java.util.Scanner;
Scanner scan = new Scanner(System.in);
String s = scan.next();
int i = scan.nextInt();
BufferedReader
и InputStreamReader
import java.io.BufferedReader;
import java.io.InputStreamReader;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
int i = Integer.parseInt(s);
DataInputStream
classimport java.io.DataInputStream;
DataInputStream dis = new DataInputStream(System.in);
int i = dis.readInt();
Метод readLine
из класса DataInputStream
был утрачен. Для получения значения String следует использовать предыдущее решение с BufferedReader
--
Console
classimport java.io.Console;
Console console = System.console();
String s = console.readLine();
int i = Integer.parseInt(console.readLine());
По всей видимости, этот метод не работает в некоторых IDE.
Вы можете использовать класс Scanner или класс Console
Console console = System.console();
String input = console.readLine("Enter input:");
Вы можете получить ввод пользователя с помощью командой bufferedreader
.
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String accStr;
System.out.println("Enter your Account number: ");
accStr = br.readLine();
Он будет хранить строка
значение в accStr
так что вам придется разобрать его на Инт
, используя Integer.parseInt
.
int accInt = Integer.parseInt(accStr);
Вот как вы можете получить ввод с клавиатуры:
Scanner scanner = new Scanner (System.in);
System.out.print("Enter your name");
name = scanner.next(); // Get what the user types.
Вы можете сделать простую программу, чтобы задать для пользователя's имя и напечатать что-либо в ответ использовать входы.
Или попросить пользователя ввести два числа, и вы можете складывать, умножать, вычитать, и делить эти числа и печатать ответы для данных, вводимых пользователем, как и поведение калькулятора.
Так что тут нужен сканер класса. Вам нужно импортировать Java.утиль.Сканер; и в код, который вы должны использовать
Scanner input = new Scanner(System.in);
Ввод имени переменной.
Scanner input = new Scanner(System.in);
System.out.println("Please enter your name : ");
s = input.next(); // getting a String value
System.out.println("Please enter your age : ");
i = input.nextInt(); // getting an integer
System.out.println("Please enter your salary : ");
d = input.nextDouble(); // getting a double
Видите, как это отличается: потребляемая мощность.следующий();,
Я = вход.nextInt();,
д = вход.nextDouble();`
По данным строки, int и двойной варьируется аналогичным образом для остальных. Дон'т забыть оператор импорта в верхней части вашего кода.
Также можно найти в блоге "и сканер классе и получать пользователей Inputs".
Лучшие два варианта командой bufferedreader
и сканер
.
Наиболее широко используемый метод сканер
и я лично предпочитаю его из-за его простоты и простота внедрения, а также мощный инструмент для синтаксического анализа текста в примитивных данных.
Преимущества использования сканера
сканер
классаПреимущества BufferedInputStream
сканер
между потоками)В целом каждый метод ввода различных целей.
Если вы вводите большое количество данных командой bufferedreader `` может быть лучше для вас
Если вы вводите много сканер числа он автоматический парсинг что очень удобно
Дополнительные Basic использует я бы рекомендовал сканер
потому что это проще в использовании и легче писать программы. Вот быстрый пример того, как создать сканер
. Я буду предоставлять всеобъемлющий пример того, как использовать сканер
Scanner scanner = new Scanner (System.in); // create scanner
System.out.print("Enter your name"); // prompt user
name = scanner.next(); // get user input
(Подробнее о командой bufferedreader
см. Как пользоваться командой bufferedreader и ознакомиться с значение строки символов)
import java.util.InputMismatchException; // import the exception catching class
import java.util.Scanner; // import the scanner class
public class RunScanner {
// main method which will run your program
public static void main(String args[]) {
// create your new scanner
// Note: since scanner is opened to "System.in" closing it will close "System.in".
// Do not close scanner until you no longer want to use it at all.
Scanner scanner = new Scanner(System.in);
// PROMPT THE USER
// Note: when using scanner it is recommended to prompt the user with "System.out.print" or "System.out.println"
System.out.println("Please enter a number");
// use "try" to catch invalid inputs
try {
// get integer with "nextInt()"
int n = scanner.nextInt();
System.out.println("Please enter a decimal"); // PROMPT
// get decimal with "nextFloat()"
float f = scanner.nextFloat();
System.out.println("Please enter a word"); // PROMPT
// get single word with "next()"
String s = scanner.next();
// ---- Note: Scanner.nextInt() does not consume a nextLine character /n
// ---- In order to read a new line we first need to clear the current nextLine by reading it:
scanner.nextLine();
// ----
System.out.println("Please enter a line"); // PROMPT
// get line with "nextLine()"
String l = scanner.nextLine();
// do something with the input
System.out.println("The number entered was: " + n);
System.out.println("The decimal entered was: " + f);
System.out.println("The word entered was: " + s);
System.out.println("The line entered was: " + l);
}
catch (InputMismatchException e) {
System.out.println("\tInvalid input entered. Please enter the specified input");
}
scanner.close(); // close the scanner so it doesn't leak
}
}
<суп>Примечание: другие классы, такие как консоль
и DataInputStream
также являются жизнеспособными альтернативами.</SUP и ГТ;
<суп>консоли
имеет некоторые мощные функции, такие как способность читать пароли, однако, доступна не во всех IDE'ы (например Eclipse). Причина это происходит потому, что затмение запускает приложение как фоновый процесс, а не как топ-уровень процесса с консоли системы. Здесь Ссылка в полезный пример о том, как реализовать консоли
класса.</SUP и ГТ;
<суп>DataInputStream
в основном используется для чтения входных как примитивный тип данных, от базового входного потока, машинно-независимым образом. DataInputStream
обычно используется для чтения двоичных данных. Он также обеспечивает методы удобства для чтения определенных типов данных. Например, есть способ, чтобы прочитать строку в UTF, который может содержать любое количество строк в них.ЛТ;/SUP и ГТ;
<суп>однако, это более сложный класс и сложнее, поэтому не рекомендуется для начинающих. Здесь Ссылка в полезный пример, как реализовать DataInputStream
.</SUP и ГТ;
Здесь, программа просит пользователя ввести число. После этого программа печатает цифры и сумму цифр.
import java.util.Scanner;
public class PrintNumber {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num = 0;
int sum = 0;
System.out.println(
"Please enter a number to show its digits");
num = scan.nextInt();
System.out.println(
"Here are the digits and the sum of the digits");
while (num > 0) {
System.out.println("==>" + num % 10);
sum += num % 10;
num = num / 10;
}
System.out.println("Sum is " + sum);
}
}
Чтобы прочитать строку или строку, вы можете использовать объект командой bufferedreader
в сочетании с InputStreamReader
следующим образом:
BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
String inputLine = bufferReader.readLine();
Вот вам программа от вопроса, используя `Ява.утиль.Сканер:
import java.util.Scanner;
public class Example {
public static void main(String[] args) {
int input = 0;
System.out.println("The super insano calculator");
System.out.println("enter the corrosponding number:");
Scanner reader3 = new Scanner(System.in);
System.out.println(
"1. Add | 2. Subtract | 3. Divide | 4. Multiply");
input = reader3.nextInt();
int a = 0, b = 0;
Scanner reader = new Scanner(System.in);
System.out.println("Enter the first number");
// get user input for a
a = reader.nextInt();
Scanner reader1 = new Scanner(System.in);
System.out.println("Enter the scend number");
// get user input for b
b = reader1.nextInt();
switch (input){
case 1: System.out.println(a + " + " + b + " = " + add(a, b));
break;
case 2: System.out.println(a + " - " + b + " = " + subtract(a, b));
break;
case 3: System.out.println(a + " / " + b + " = " + divide(a, b));
break;
case 4: System.out.println(a + " * " + b + " = " + multiply(a, b));
break;
default: System.out.println("your input is invalid!");
break;
}
}
static int add(int lhs, int rhs) { return lhs + rhs; }
static int subtract(int lhs, int rhs) { return lhs - rhs; }
static int divide(int lhs, int rhs) { return lhs / rhs; }
static int multiply(int lhs, int rhs) { return lhs * rhs; }
}
Используем класс система
, чтобы получить вход.
http://fresh2refresh.com/java-tutorial/java-input-output/ :
как данных, принятых от клавиатуры ?
нам нужны три объекта,
- Системы.в
- InputStreamReader
- Командой bufferedreader
- командой bufferedreader и InputStreamReader классы в Java.пакет Ио.
- данные, полученные в виде байта с клавиатуры системы.в который InputStream объект.
- затем InputStreamReader читает байты и декодирует их в символы.
- затем объект, наконец, текст чтений из потока ввода символов, буферизации символов таким образом, чтобы обеспечить эффективное чтение символов, массивов и строк.
InputStreamReader inp = new InputStreamReader(system.in);
BufferedReader br = new BufferedReader(inp);
Одна лишняя деталь. Если вы Don'т хотите рисковать памяти/утечки ресурсов, вы должны закрыть поток сканера:
myScanner.close();
Обратите внимание, что Java 1.7 и позже поймать как составить предупреждение (Дон'т спросить, откуда я это знаю :-)
import java.util.Scanner;
class Daytwo{
public static void main(String[] args){
System.out.println("HelloWorld");
Scanner reader = new Scanner(System.in);
System.out.println("Enter the number ");
int n = reader.nextInt();
System.out.println("You entered " + n);
}
}
Вот более развитая версия принято отвечать, что рассматриваются два общих потребностей:
Код
package inputTest;
import java.util.Scanner;
import java.util.InputMismatchException;
public class InputTest {
public static void main(String args[]) {
Scanner reader = new Scanner(System.in);
System.out.println("Please enter integers. Type 0 to exit.");
boolean done = false;
while (!done) {
System.out.print("Enter an integer: ");
try {
int n = reader.nextInt();
if (n == 0) {
done = true;
}
else {
// do something with the input
System.out.println("\tThe number entered was: " + n);
}
}
catch (InputMismatchException e) {
System.out.println("\tInvalid input type (must be an integer)");
reader.nextLine(); // Clear invalid input from scanner buffer.
}
}
System.out.println("Exiting...");
reader.close();
}
}
Пример
Please enter integers. Type 0 to exit.
Enter an integer: 12
The number entered was: 12
Enter an integer: -56
The number entered was: -56
Enter an integer: 4.2
Invalid input type (must be an integer)
Enter an integer: but i hate integers
Invalid input type (must be an integer)
Enter an integer: 3
The number entered was: 3
Enter an integer: 0
Exiting...
Обратите внимание, что без строки()`, плохой вход будет неоднократно вызывать такое же исключение в бесконечном цикле. Вы можете использовать следующий () вместо того, чтобы в зависимости от обстоятельств, но знаю, что вход, как это имеет пространство будет генерировать несколько исключений.
Это очень просто сделать ввод в Java, все, что вам нужно сделать, это:
import java.util.Scanner;
class GetInputFromUser
{
public static void main(String args[])
{
int a;
float b;
String s;
Scanner in = new Scanner(System.in);
System.out.println("Enter a string");
s = in.nextLine();
System.out.println("You entered string " + s);
System.out.println("Enter an integer");
a = in.nextInt();
System.out.println("You entered integer " + a);
System.out.println("Enter a float");
b = in.nextFloat();
System.out.println("You entered float " + b);
}
}
Добавить бросает IOException
рядом основной()
, то
DataInputStream input = new DataInputStream(System.in);
System.out.print("Enter your name");
String name = input.readLine();
import java.util.Scanner;
public class Myapplication{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int a;
System.out.println("enter:");
a = in.nextInt();
System.out.println("Number is= " + a);
}
}
Вы можете получить ввод пользователя как с помощью командой bufferedreader:
InputStreamReader inp = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(inp);
// you will need to import these things.
Это как вы их применять
String name = br.readline();
Поэтому, когда пользователь введет свое имя в консоли, то "имя" и будет хранить эту информацию.
Если это число вы хотите магазине, то код будет выглядеть так:
int x = Integer.parseInt(br.readLine());
Хоп это помогает!