Как я могу получить пользовательский ввод в Java? - PullRequest
297 голосов
/ 13 марта 2011

Я попытался создать калькулятор, но не могу заставить его работать, потому что я не знаю , как получить пользовательский ввод .

Как я могу получить пользовательский ввод в Java?

Ответы [ 27 ]

2 голосов
/ 03 сентября 2015

Вы можете получить пользовательский ввод, например, с помощью BufferedReader:

    InputStreamReader inp = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(inp);
    // you will need to import these things.

Вот как вы их применяете

    String name = br.readline(); 

Поэтому, когда пользователь вводит свое имя в консоль,«String name» будет хранить эту информацию.

Если это число, которое вы хотите сохранить, код будет выглядеть следующим образом:

    int x = Integer.parseInt(br.readLine());

Хоп, это поможет!

1 голос
/ 23 февраля 2017

Мне нравится следующее:

public String readLine(String tPromptString) {
    byte[] tBuffer = new byte[256];
    int tPos = 0;
    System.out.print(tPromptString);

    while(true) {
        byte tNextByte = readByte();
        if(tNextByte == 10) {
            return new String(tBuffer, 0, tPos);
        }

        if(tNextByte != 13) {
            tBuffer[tPos] = tNextByte;
            ++tPos;
        }
    }
}

и, например, я бы сделал:

String name = this.readLine("What is your name?")
1 голос
/ 22 ноября 2013

Это простой код, который использует функцию System.in.read(). Этот код просто записывает все, что было напечатано. Вы можете избавиться от цикла while, если просто хотите получить ввод один раз, и можете сохранить ответы в массиве символов, если захотите.

package main;

import java.io.IOException;

public class Root 
{   
    public static void main(String[] args)
    {
        new Root();
    }

    public Root()
    {
        while(true)
        {
            try
            {
                for(int y = 0; y < System.in.available(); ++y)
                { 
                    System.out.print((char)System.in.read()); 
                }
            }
            catch(IOException ex)
            {
                ex.printStackTrace(System.out);
                break;
            }
        }
    }   
}    
0 голосов
/ 25 января 2019

Пользовательский ввод можно получить с помощью Scanner.Вы можете использовать правильную проверку ввода, используя подходящие методы для разных типов данных, таких как next() для String или nextInt() для Integer.

import java.util.Scanner;

Scanner scanner = new Scanner(System.in);

//reads the input until it reaches the space
System.out.println("Enter a string: ");
String str = scanner.next();
System.out.println("str = " + str);

//reads until the end of line
String aLine = scanner.nextLine();

//reads the integer
System.out.println("Enter an integer num: ");
int num = scanner.nextInt();
System.out.println("num = " + num);

//reads the double value
System.out.println("Enter a double: ");
double aDouble = scanner.nextDouble();
System.out.println("double = " + aDouble);


//reads the float value, long value, boolean value, byte and short
double aFloat = scanner.nextFloat();
long aLong = scanner.nextLong();
boolean aBoolean = scanner.nextBoolean();
byte aByte = scanner.nextByte();
short aShort = scanner.nextShort();

scanner.close();
0 голосов
/ 24 января 2019

Ввод клавиатуры с помощью сканера возможен, как и другие опубликовали.Но в эти очень сложные графические времена бессмысленно создавать калькулятор без графического интерфейса пользователя (GUI).

В современной Java это означает использование инструмента перетаскивания JavaFX, например Scene Builder выложить графический интерфейс, напоминающий консоль калькулятора.Обратите внимание, что использование Scene Builder интуитивно просто и не требует дополнительных навыков работы с Java для его обработчиков событий по сравнению с тем, что у вас уже есть.

Для пользовательского ввода у вас должен быть широкий TextField в верхней части GUI.console.

Здесь пользователь вводит числа, для которых он хочет выполнять функции.Ниже TextField у вас будет множество функциональных кнопок, выполняющих базовые функции (например, сложение / вычитание / умножение / деление и память / возврат / очистка).После того, как GUI выложен, вы можете добавить ссылки 'controller', которые связывают каждую функцию кнопки с ее реализацией Java, например, вызов метода в классе контроллера вашего проекта.

Это видео немного староват, но все еще показывает, насколько прост в использовании Scene Builder.

0 голосов
/ 22 марта 2015
class ex1 {    
    public static void main(String args[]){
        int a, b, c;
        a = Integer.parseInt(args[0]);
        b = Integer.parseInt(args[1]);
        c = a + b;
        System.out.println("c = " + c);
    }
}
// Output  
javac ex1.java
java ex1 10 20 
c = 30
0 голосов
/ 08 января 2015
import java.util.Scanner;

public class userinput {
    public static void main(String[] args) {        
        Scanner input = new Scanner(System.in);

        System.out.print("Name : ");
        String name = input.next();
        System.out.print("Last Name : ");
        String lname = input.next();
        System.out.print("Age : ");
        byte age = input.nextByte();

        System.out.println(" " );
        System.out.println(" " );

        System.out.println("Firt Name: " + name);
        System.out.println("Last Name: " + lname);
        System.out.println("      Age: " + age);
    }
}
...