如何从Java中的标准input读取整数值

我可以用什么类读取Java中的整数variables?

您可以使用java.util.Scanner ( API ):

 import java.util.Scanner; //... Scanner in = new Scanner(System.in); int num = in.nextInt(); 

它也可以使用正则expression式来标记input。该API有示例,并且在该站点中还有很多其他的示例(例如, 如何防止扫描器在input错误types时抛出exception? )。

如果您正在使用Java 6,则可以使用以下oneliner从控制台读取整数:

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

这里我提供了2个例子来读取标准input的整数值

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

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

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

问题是“如何从标准input读取”。

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

您可能希望testing是否没有可用的Java控制台设备,例如Java VM不是从命令行启动,或者标准input和输出stream被redirect。

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

使用控制台是input数字的简单方法。 结合parseInt()/ Double()等

 s = cons.readLine("Enter a int: "); int i = Integer.parseInt(s); s = cons.readLine("Enter a double: "); double d = Double.parseDouble(s); 

这引起了一些头疼的问题,所以我更新了一个解决scheme,该解决scheme将在2014年12月使用最常用的硬件和软件工具提供给用户。请注意,JDK / SDK / JRE / Netbeans及其后续类,模板库编译器,编辑器和debugging器自由。

这个程序是用Java v8 u25testing的。 它是使用写入和构build的
Netbeans IDE 8.0.2,JDK 1.8,操作系统是win8.1(道歉),浏览器是Chrome(双重道歉) – 意味着协助UNIX-cmd-line OG处理ZERO COST的基于现代GUI-Web的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 

检查这一个:

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