Какой класс я могу использовать для чтения целочисленной переменной в Java?
Какой класс я могу использовать для чтения целочисленной переменной в Java?
Ответы:
Вы можете использовать java.util.Scanner
( API ):
import java.util.Scanner;
//...
Scanner in = new Scanner(System.in);
int num = in.nextInt();
Он также может токенизировать ввод с помощью регулярных выражений и т. Д. У API есть примеры, и на этом сайте есть много других (например, как мне не дать сканеру выдавать исключения при вводе неправильного типа? ).
Если вы используете Java 6, вы можете использовать следующую строку для чтения целого числа из консоли:
int n = Integer.parseInt(System.console().readLine());
Здесь я привожу 2 примера для чтения целочисленного значения из стандартного ввода.
Пример 1
import java.util.Scanner;
public class Maxof2
{
public static void main(String args[])
{
//taking value as command line argument.
Scanner in = new Scanner(System.in);
System.out.printf("Enter i Value: ");
int i = in.nextInt();
System.out.printf("Enter j Value: ");
int j = in.nextInt();
if(i > j)
System.out.println(i+"i is greater than "+j);
else
System.out.println(j+" is greater than "+i);
}
}
Пример 2
public class ReadandWritewhateveryoutype
{
public static void main(String args[]) throws java.lang.Exception
{
System.out.printf("This Program is used to Read and Write what ever you type \nType quit to Exit at any Moment\n\n");
java.io.BufferedReader r = new java.io.BufferedReader (new java.io.InputStreamReader (System.in));
String hi;
while (!(hi=r.readLine()).startsWith("quit"))System.out.printf("\nYou have typed: %s \n",hi);
}
}
Я предпочитаю Первый пример, он простой и понятный.
Вы можете компилировать и запускать программы JAVA онлайн на этом веб-сайте: http://ideone.com
Отметьте это:
public static void main(String[] args) {
String input = null;
int number = 0;
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
input = bufferedReader.readLine();
number = Integer.parseInt(input);
} catch (NumberFormatException ex) {
System.out.println("Not a number !");
} catch (IOException e) {
e.printStackTrace();
}
}
NumberFormatException
а затем печатать трассировку стека?
Второй ответ выше самый простой.
int n = Integer.parseInt(System.console().readLine());
Вопрос в том «Как читать со стандартного ввода».
Консоль - это устройство, обычно связанное с клавиатурой и дисплеем, с которого запускается программа.
Вы можете проверить, доступно ли консольное устройство Java, например, виртуальная машина Java не запущена из командной строки или перенаправляются стандартные потоки ввода и вывода.
Console cons;
if ((cons = System.console()) == null) {
System.err.println("Unable to obtain console");
...
}
Использование консоли - это простой способ ввода чисел. В сочетании с parseInt () / Double () и т. Д.
s = cons.readLine("Enter a int: ");
int i = Integer.parseInt(s);
s = cons.readLine("Enter a double: ");
double d = Double.parseDouble(s);
проверьте это:
import java.io.*;
public class UserInputInteger
{
public static void main(String args[])throws IOException
{
InputStreamReader read = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(read);
int number;
System.out.println("Enter the number");
number = Integer.parseInt(in.readLine());
}
}
Это вызывает головные боли, поэтому я обновил решение, которое будет работать с использованием наиболее распространенных аппаратных и программных инструментов, доступных пользователям в декабре 2014 года. Обратите внимание, что JDK / SDK / JRE / Netbeans и их последующие классы, компиляторы библиотек шаблонов, редакторы и отладчики являются свободно.
Эта программа была протестирована с Java v8 u25. Он был написан и построен с использованием
Netbeans IDE 8.0.2, JDK 1.8, ОС - win8.1 (извинения), а браузер - Chrome (двойные извинения) - предназначен для помощи UNIX-cmd-line OG в работе с современным графическим интерфейсом на основе веб-интерфейса. IDE по НУЛЕВОЙ СТОИМОСТИ - потому что информация (и IDE) всегда должны быть бесплатными. Автор: Tapper7. Для каждого.
кодовый блок:
package modchk; //Netbeans requirement.
import java.util.Scanner;
//import java.io.*; is not needed Netbeans automatically includes it.
public class Modchk {
public static void main(String[] args){
int input1;
int input2;
//Explicity define the purpose of the .exe to user:
System.out.println("Modchk by Tapper7. Tests IOStream and basic bool modulo fxn.\n"
+ "Commented and coded for C/C++ programmers new to Java\n");
//create an object that reads integers:
Scanner Cin = new Scanner(System.in);
//the following will throw() if you don't do you what it tells you or if
//int entered == ArrayIndex-out-of-bounds for your system. +-~2.1e9
System.out.println("Enter an integer wiseguy: ");
input1 = Cin.nextInt(); //this command emulates "cin >> input1;"
//I test like Ernie Banks played hardball: "Let's play two!"
System.out.println("Enter another integer...anyday now: ");
input2 = Cin.nextInt();
//debug the scanner and istream:
System.out.println("the 1st N entered by the user was " + input1);
System.out.println("the 2nd N entered by the user was " + input2);
//"do maths" on vars to make sure they are of use to me:
System.out.println("modchk for " + input1);
if(2 % input1 == 0){
System.out.print(input1 + " is even\n"); //<---same output effect as *.println
}else{
System.out.println(input1 + " is odd");
}//endif input1
//one mo' 'gain (as in istream dbg chk above)
System.out.println("modchk for " + input2);
if(2 % input2 == 0){
System.out.print(input2 + " is even\n");
}else{
System.out.println(input2 + " is odd");
}//endif input2
}//end main
}//end Modchk