En Java, hay cuatro formas diferentes de leer la entrada del usuario en el entorno de la línea de comandos (consola).
1. Uso de la clase de lector almacenado en búfer
Este es el método clásico de Java para recibir entradas, introducido en JDK1.0. Este método se usa al envolver System.in (flujo de entrada estándar) en un InputStreamReader que está envuelto en un BufferedReader, podemos leer la entrada del usuario en la línea de comando.
- La entrada se almacena en búfer para una lectura eficiente.
- El código de envoltura es difícil de recordar.
Implementación:
Java
// Java program to demonstrate BufferedReader import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Test { public static void main(String[] args) throws IOException { // Enter data using BufferReader BufferedReader reader = new BufferedReader( new InputStreamReader(System.in)); // Reading data using readLine String name = reader.readLine(); // Printing the read line System.out.println(name); } }
Aporte:
Geek
Producción:
Espacio Auxiliar : O(1)
Geek
Nota:
Para leer otros tipos, usamos funciones como Integer.parseInt(), Double.parseDouble(). Para leer múltiples valores, usamos split().
2. Uso de la clase de escáner
Este es probablemente el método más preferido para recibir información. El propósito principal de la clase Scanner es analizar strings y tipos primitivos usando expresiones regulares, sin embargo, también se puede usar para leer la entrada del usuario en la línea de comando.
- Métodos convenientes para analizar primitivas (nextInt(), nextFloat(), …) de la entrada tokenizada.
- Las expresiones regulares se pueden usar para encontrar tokens.
- Los métodos de lectura no están sincronizados.
Para ver más diferencias, consulte este artículo.
Java
// Java program to demonstrate working of Scanner in Java import java.util.Scanner; class GetInputFromUser { public static void main(String args[]) { // Using Scanner for Getting Input from User Scanner in = new Scanner(System.in); String s = in.nextLine(); System.out.println("You entered string " + s); int a = in.nextInt(); System.out.println("You entered integer " + a); float b = in.nextFloat(); System.out.println("You entered float " + b); } }
Aporte:
GeeksforGeeks 12 3.4
Producción:
You entered string GeeksforGeeks You entered integer 12 You entered float 3.4
3. Uso de la clase de consola
Se ha convertido en la forma preferida de leer la entrada del usuario desde la línea de comandos. Además, se puede usar para leer entradas similares a contraseñas sin hacer eco de los caracteres ingresados por el usuario; también se puede usar la sintaxis de string de formato (como System.out.printf()).
ventajas:
- Lectura de contraseña sin repetir los caracteres ingresados.
- Los métodos de lectura están sincronizados.
- Se puede utilizar la sintaxis de string de formato.
- No funciona en un entorno no interactivo (como en un IDE).
Java
// Java program to demonstrate working of System.console() // Note that this program does not work on IDEs as // System.console() may require console public class Sample { public static void main(String[] args) { // Using Console to input data from user String name = System.console().readLine(); System.out.println("You entered string " + name); } }
Aporte:
GeeksforGeeks
Producción:
You entered string GeeksforGeeks
4. Usando el argumento de la línea de comando
Entrada de usuario más utilizada para la codificación competitiva. Los argumentos de la línea de comandos se almacenan en formato de string. El método parseInt de la clase Integer convierte el argumento de string en Integer. Del mismo modo, para float y otros durante la ejecución. El uso de args[] surge en este formulario de entrada. El paso de información tiene lugar durante la ejecución del programa. La línea de comando se asigna a args[]. Estos programas deben ejecutarse en cmd.
Código:
Java
// Program to check for command line arguments class Hello { public static void main(String[] args) { // check if length of args array is // greater than 0 if (args.length > 0) { System.out.println( "The command line arguments are:"); // iterating the args array and printing // the command line arguments for (String val : args) System.out.println(val); } else System.out.println("No command line " + "arguments found."); } }
Argumentos de la línea de comandos:
javac GFG1.java java Main Hello World
Producción:
The command line arguments are: Hello World
Consulte esto para obtener formas más rápidas de leer la entrada.
Este artículo es una contribución de D Raj Ranu . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA