Как получить простой ввод с клавиатуры (целое число) от пользователя в консоли на Java? Я выполнил это с помощью материала java.io.*
, но он говорит, что он устарел.
Как мне это сделать сейчас?
Как получить простой ввод с клавиатуры (целое число) от пользователя в консоли на Java? Я выполнил это с помощью материала java.io.*
, но он говорит, что он устарел.
Как мне это сделать сейчас?
Вы можете использовать Scanner класс
Импортировать сначала:
import java.util.Scanner;
Затем вы используете вот так.
Scanner keyboard = new Scanner(System.in);
System.out.println("enter an integer");
int myint = keyboard.nextInt();
Боковое примечание: если вы используете nextInt()
с nextLine()
, возможно, у вас может быть некоторая проблема. nextInt()
не читает последний символ новой строки ввода и поэтому nextLine()
, тогда он не будет выполнен с желаемым поведение. Подробнее о том, как его решить в предыдущем вопросе, Пропустить nextLine, используя nextInt.
Вы можете использовать класс сканера следующим образом:
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner scan= new Scanner(System.in);
//For string
String text= scan.nextLine();
System.out.println(text);
//for int
int num= scan.nextInt();
System.out.println(num);
}
}
Вы также можете сделать это с помощью BufferedReader, если вы хотите проверить ввод пользователя, например:
import java.io.BufferedReader;
import java.io.InputStreamReader;
class Areas {
public static void main(String args[]){
float PI = 3.1416f;
int r=0;
String rad; //We're going to read all user text into a String and we try to convert it later
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //Here you declare your BufferedReader object and instance it.
System.out.println("Radius?");
try{
rad = br.readLine(); //We read from user input
r = Integer.parseInt(rad); //We validate if "rad" is an integer (if so we skip catch call and continue on the next line, otherwise, we go to it (catch call))
System.out.println("Circle area is: " + PI*r*r + " Perimeter: " +PI*2*r); //If all was right, we print this
}
catch(Exception e){
System.out.println("Write an integer number"); //This is what user will see if he/she write other thing that is not an integer
Areas a = new Areas(); //We call this class again, so user can try it again
//You can also print exception in case you want to see it as follows:
// e.printStackTrace();
}
}
}
Поскольку класс сканера не позволит вам это сделать, или не так просто...
И чтобы проверить, что вы используете вызовы "try-catch".
Вы можете использовать Scanner для получения следующей строки и делать все, что вам нужно, с введенной строкой. Вы также можете использовать JOptionPane для вызова диалогового окна с запросом на ввод.
Пример сканера:
Scanner input = new Scanner(System.in);
System.out.print("Enter something > ");
String inputString = input.nextLine();
System.out.print("You entered : ");
System.out.println(inputString);
Пример JOptionPane:
String input = JOptionPane.showInputDialog(null,
"Enter some text:");
JOptionPane.showMessageDialog(null,"You entered "+ input);
Вам понадобится импорт:
import java.util.Scanner;
import javax.swing.JOptionPane;
Полный класс Java из вышеперечисленного
import java.util.Scanner;
import javax.swing.JOptionPane;
public class GetInputs{
public static void main(String args[]){
//Scanner example
Scanner input = new Scanner(System.in);
System.out.print("Enter something > ");
String inputString = input.nextLine();
System.out.print("You entered : ");
System.out.println(inputString);
//JOptionPane example
String input = JOptionPane.showInputDialog(null,
"Enter some text:");
JOptionPane.showMessageDialog(null,"You entered "+ input);
}
}
Импорт: import java.util.Scanner;
Определите свои переменные: String name; int age;
Определите свой сканер: Scanner scan = new Scanner(System.in);
Если вы хотите ввести:
name = scan.nextLine();
age = scan.nextInt();
Закройте сканер, если он больше не нужен: scan.close();
import java.util.Scanner; //import the framework
Scanner input = new Scanner(System.in); //opens a scanner, keyboard
System.out.print("Enter a number: "); //prompt the user
int myInt = input.nextInt(); //store the input from the user
Сообщите мне, если у вас есть вопросы. Очень понятно. Я прокомментировал код, чтобы вы могли его прочитать.:)
Добавить строку:
import java.util.Scanner;
Затем создайте объект класса Scanner
:
Scanner s = new Scanner(System.in);
Теперь вы можете позвонить в любое время:
int a = Integer.parseInt(s.nextLine());
Это сохранит значение integer
с клавиатуры.
Если у вас есть Java 6 (вы должны иметь, btw) или выше, просто выполните это:
Console console = System.console();
String str = console.readLine("Please enter the xxxx : ");
Пожалуйста, не забудьте сделать:
import java.io.Console;
Вот оно!
Чтение с клавиатуры (стандартный ввод) Вы можете использовать Scanner - это класс в пакете java.util
.
Пакет Scanner
, используемый для получения ввода примитивных типов, таких как int, double
и т.д. И strings
. Это самый простой способ прочитать ввод в программе Java, хотя и не очень эффективный.
object
класса Scanner
, мы обычно передаем предопределенный объект System.in
, который представляет стандартный поток ввода (Keyboard).Например, этот код позволяет пользователю читать номер из System.in:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
Некоторые общедоступные методы в классе Scanner
.
hasNext()
Возвращает true, если этот сканер имеет другой токен на своем входе.nextInt()
Сканирует следующий токен ввода как int.nextFloat()
Сканирует следующий токен ввода как плавающий.nextLine()
этот сканер за текущей строкой и возвращает вход, который был пропущен.nextDouble()
Сканирует следующий токен ввода как двойной.close()
Закрывает этот сканер.Дополнительные сведения об общедоступных методах в классе Scanner.
Exaple: -
import java.util.Scanner; //importing class
class ScannerTest {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in); // Scanner object
System.out.println("Enter your rollno");
int rollno = sc.nextInt();
System.out.println("Enter your name");
String name = sc.next();
System.out.println("Enter your fee");
double fee = sc.nextDouble();
System.out.println("Rollno:" + rollno + " name:" + name + " fee:" + fee);
sc.close(); // closing object
}
}