Как получить простой ввод с клавиатуры (целое число) от пользователя в консоли на 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
}
}