¿Qué clase puedo usar para leer una variable entera en Java?
¿Qué clase puedo usar para leer una variable entera en Java?
Respuestas:
Puede utilizar java.util.Scanner
( API ):
import java.util.Scanner;
//...
Scanner in = new Scanner(System.in);
int num = in.nextInt();
También puede tokenizar la entrada con expresiones regulares, etc. La API tiene ejemplos y hay muchos otros en este sitio (por ejemplo, ¿Cómo evito que un escáner arroje excepciones cuando se ingresa el tipo incorrecto? ).
Si está utilizando Java 6, puede utilizar el siguiente delineador para leer un número entero desde la consola:
int n = Integer.parseInt(System.console().readLine());
Aquí proporciono 2 ejemplos para leer el valor entero de la entrada estándar
Ejemplo 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);
}
}
Ejemplo 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);
}
}
Prefiero el primer ejemplo, es fácil y bastante comprensible.
Puede compilar y ejecutar los programas JAVA en línea en este sitio web: http://ideone.com
Revisa este:
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
y luego imprimir el seguimiento de la pila?
La segunda respuesta anterior es la más simple.
int n = Integer.parseInt(System.console().readLine());
La pregunta es "Cómo leer desde la entrada estándar".
Una consola es un dispositivo asociado típicamente al teclado y la pantalla desde el cual se inicia un programa.
Es posible que desee probar si no hay ningún dispositivo de consola Java disponible, por ejemplo, Java VM no se inició desde una línea de comandos o si se redirigen los flujos de entrada y salida estándar.
Console cons;
if ((cons = System.console()) == null) {
System.err.println("Unable to obtain console");
...
}
Usar la consola es una forma sencilla de ingresar números. Combinado con parseInt () / Double () etc.
s = cons.readLine("Enter a int: ");
int i = Integer.parseInt(s);
s = cons.readLine("Enter a double: ");
double d = Double.parseDouble(s);
revisa este:
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());
}
}
Esto causa dolores de cabeza, así que actualicé una solución que se ejecutará utilizando las herramientas de hardware y software más comunes disponibles para los usuarios en diciembre de 2014. Tenga en cuenta que JDK / SDK / JRE / Netbeans y sus clases posteriores, compiladores de bibliotecas de plantillas, editores y depuradores son gratis.
Este programa fue probado con Java v8 u25. Fue escrito y construido usando
Netbeans IDE 8.0.2, JDK 1.8, el sistema operativo es win8.1 (disculpas) y el navegador es Chrome (doble disculpa), destinado a ayudar al trato de UNIX-cmd-line OG con la GUI moderna basada en la web IDE a COSTE CERO, porque la información (y los IDE) siempre deben ser gratuitos. Por Tapper7. Para todo el mundo.
bloque de código:
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