How to read integer value from the standard input in Java

What class can I use for reading an integer variable in Java?

589430 次浏览

看看这个:

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();
}
}

你可以使用 java.util.Scanner(空气污染指数) :

import java.util.Scanner;


//...


Scanner in = new Scanner(System.in);
int num = in.nextInt();

它还可以使用正则表达式等对输入进行标记化。API 有很多例子,这个网站还有很多其他的例子(例如 当输入错误类型时,如何防止扫描程序引发异常?)。

如果使用 Java6,可以使用下面的一线程从控制台读取整数:

int n = Integer.parseInt(System.console().readLine());

在这里,我提供了2个例子,从标准输入读取整数值

例子一

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);
}
}

Example 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 程序: < a href = “ http://ideone.com”> http://ideone.com

上面的第二个答案是最简单的一个。

int n = Integer.parseInt(System.console().readLine());

问题是“如何从标准输入中读取”。

控制台是一种通常与键盘和显示器相关联的设备,程序是从这些设备启动的。

您可能希望测试是否没有可用的 Java 控制台设备,例如 JavaVM 没有从命令行启动,或者标准的输入和输出流被重定向。

Console cons;
if ((cons = System.console()) == null) {
System.err.println("Unable to obtain console");
...
}

使用控制台是一种输入数字的简单方法。

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年12月使用用户可以使用的最常见的硬件和软件工具运行。请注意,JDK/SDK/JRE/Netbeans 及其后续类、模板库编译器、编辑器和调试器都是免费的。

This program was tested with Java v8 u25. It was written and built using
Netbeans IDE 8.0.2,JDK 1.8,OS 是 win8.1(抱歉) ,浏览器是 Chrome (再次抱歉) - 旨在帮助 UNIX-cmd-line OG 处理现代 GUI-基于 Web 的 IDE 在零成本-因为信息(和 IDE)应该总是免费的。 By Tapper7. For Everyone.

代码块:

    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