una - scanner en java netbeans
¿Cómo puedo leer la entrada de la consola usando la clase de escáner en Java? (15)
Para leer entrada:
Scanner scanner = new Scanner(System.in); String input = scanner.nextLine();
Para leer entrada cuando llamas a un método con algunos argumentos / parámetros:
if (args.length != 2) { System.err.println("Utilizare: java Grep <fisier> <cuvant>"); System.exit(1); } try { grep(args[0], args[1]); } catch (IOException e) { System.out.println(e.getMessage()); }
¿Cómo podría leer la entrada desde la consola usando la clase de Scanner
? Algo como esto:
System.out.println("Enter your username: ");
Scanner = input(); // Or something like this, I don''t know the code
Básicamente, todo lo que quiero es que el escáner lea una entrada para el nombre de usuario y asigne la entrada a una variable String
.
Aquí está la clase completa que realiza la operación requerida:
import java.util.Scanner;
public class App {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
final int valid = 6;
Scanner one = new Scanner(System.in);
System.out.println("Enter your username: ");
String s = one.nextLine();
if (s.length() < valid) {
System.out.println("Enter a valid username");
System.out.println(
"User name must contain " + valid + " characters");
System.out.println("Enter again: ");
s = one.nextLine();
}
System.out.println("Username accepted: " + s);
Scanner two = new Scanner(System.in);
System.out.println("Enter your age: ");
int a = two.nextInt();
System.out.println("Age accepted: " + a);
Scanner three = new Scanner(System.in);
System.out.println("Enter your sex: ");
String sex = three.nextLine();
System.out.println("Sex accepted: " + sex);
}
}
Cuando el usuario ingresa su username
, verifique también la entrada válida.
java.util.Scanner input = new java.util.Scanner(System.in);
String userName;
final int validLength = 6; // This is the valid length of an user name
System.out.print("Please enter the username: ");
userName = input.nextLine();
while(userName.length() < validLength) {
// If the user enters less than validLength characters
// ask for entering again
System.out.println(
"/nUsername needs to be " + validLength + " character long");
System.out.print("/nPlease enter the username again: ");
userName = input.nextLine();
}
System.out.println("Username is: " + userName);
Hay un problema con el método input.nextInt (): solo lee el valor int.
Entonces al leer la siguiente línea usando input.nextLine () usted recibe "/ n", es decir, la tecla Enter . Entonces, para omitir esto, debe agregar input.nextLine ().
Pruébalo así:
System.out.print("Insert a number: ");
int number = input.nextInt();
input.nextLine(); // This line you have to add (it consumes the /n character)
System.out.print("Text1: ");
String text1 = input.nextLine();
System.out.print("Text2: ");
String text2 = input.nextLine();
Hay una manera simple de leer desde la consola.
Por favor encuentre el siguiente código:
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// Reading of Integer
int number = sc.nextInt();
// Reading of String
String str = sc.next();
}
}
Para una comprensión detallada, consulte los documentos a continuación.
Ahora hablemos sobre la comprensión detallada del funcionamiento de la clase Scanner:
public Scanner(InputStream source) {
this(new InputStreamReader(source), WHITESPACE_PATTERN);
}
Este es el constructor para crear la instancia de Scanner.
Aquí estamos pasando la referencia InputStream
que no es más que un System.In
. Aquí abre el InputStream
Pipe para la entrada de la consola.
public InputStreamReader(InputStream in) {
super(in);
try {
sd = StreamDecoder.forInputStreamReader(in, this, (String)null); // ## Check lock object
}
catch (UnsupportedEncodingException e) {
// The default encoding should always be available
throw new Error(e);
}
}
Pasando el Sistema. En este código se abrirá el socket para leer desde la consola.
Hay varias formas de obtener información del usuario. Aquí en este programa tomaremos la clase de escáner para lograr la tarea. Esta clase de escáner viene bajo java.util
, por lo tanto, la primera línea del programa es import java.util.Scanner; que permite al usuario leer valores de varios tipos en Java. La línea de declaración de importación debe estar en la primera línea del programa Java, y procedemos más allá para el código.
in.nextInt(); // It just reads the numbers
in.nextLine(); // It get the String which user enters
Para acceder a los métodos en la clase de escáner, cree un nuevo objeto de escáner como "en". Ahora usamos uno de sus métodos, que es "siguiente". El método "siguiente" obtiene la cadena de texto que un usuario ingresa en el teclado.
Aquí estoy usando in.nextLine();
para obtener la cadena a la que ingresa el usuario.
import java.util.Scanner;
class GetInputFromUser {
public static void main(String args[]) {
int a;
float b;
String s;
Scanner in = new Scanner(System.in);
System.out.println("Enter a string");
s = in.nextLine();
System.out.println("You entered string " + s);
System.out.println("Enter an integer");
a = in.nextInt();
System.out.println("You entered integer " + a);
System.out.println("Enter a float");
b = in.nextFloat();
System.out.println("You entered float " + b);
}
}
Puede hacer un programa simple para pedir el nombre del usuario e imprimir las entradas de uso de la respuesta.
O solicite al usuario que ingrese dos números y puede agregar, multiplicar, restar o dividir esos números e imprimir las respuestas para las entradas de los usuarios de la misma forma que el comportamiento de una calculadora.
Entonces ahí necesitas la clase de escáner. Tienes que import java.util.Scanner;
y en el código que necesitas usar:
Scanner input = new Scanner(System.in);
input
es un nombre de variable.
Scanner input = new Scanner(System.in);
System.out.println("Please enter your name: ");
s = input.next(); // Getting a String value
System.out.println("Please enter your age: ");
i = input.nextInt(); // Getting an integer
System.out.println("Please enter your salary: ");
d = input.nextDouble(); // Getting a double
Vea cómo esto difiere: input.next();
, i = input.nextInt();
, d = input.nextDouble();
De acuerdo con una cadena, int y un doble varía de la misma manera para el resto. No olvides la declaración de importación en la parte superior de tu código.
Puedes transmitir este código:
Scanner obj= new Scanner(System.in);
String s = obj.nextLine();
Puedes usar la clase de escáner en Java
Scanner scan = new Scanner(System.in);
String s = scan.nextLine();
System.out.println("String: " + s);
Un simple ejemplo para ilustrar cómo funciona java.util.Scanner
sería leer un solo entero de System.in
. Es realmente bastante simple.
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
Para recuperar un nombre de usuario, probablemente usaría sc.nextLine()
.
System.out.println("Enter your username: ");
Scanner scanner = new Scanner(System.in);
String username = scanner.nextLine();
System.out.println("Your username is " + username);
También puede usar next(String pattern)
si desea más control sobre la entrada, o simplemente validar la variable de username
.
Encontrará más información sobre su implementación en la documentación de API para java.util.Scanner
Un simple ejemplo:
import java.util.Scanner;
public class Example
{
public static void main(String[] args)
{
int number1, number2, sum;
Scanner input = new Scanner(System.in);
System.out.println("Enter First multiple");
number1 = input.nextInt();
System.out.println("Enter second multiple");
number2 = input.nextInt();
sum = number1 * number2;
System.out.printf("The product of both number is %d", sum);
}
}
Lectura de datos desde la consola
BufferedReader
está sincronizado, por lo que las operaciones de lectura en un BufferedReader se pueden realizar de forma segura desde varios subprocesos. Se puede especificar el tamaño del búfer o se puede usar el tamaño predeterminado ( 8192 ). El valor predeterminado es lo suficientemente grande para la mayoría de los propósitos.readLine() « solo lee datos línea por línea desde la secuencia o fuente. Se considera que una línea está terminada por cualquiera de estos: / n, / r (o) / r / n
Scanner
divide su entrada en tokens usando un patrón de delimitador, que por defecto coincide con el espacio en blanco (/ s) y es reconocido porCharacter.isWhitespace
.« Hasta que el usuario ingrese los datos, la operación de escaneo puede bloquearse, esperando la entrada. « Use Scanner ( BUFFER_SIZE = 1024 ) si desea analizar un tipo específico de token de una secuencia. « Sin embargo, un escáner no es seguro para subprocesos. Tiene que estar sincronizado externamente.
next () «Busca y devuelve el siguiente token completo de este escáner. nextInt () «Escanea el siguiente token de la entrada como un int.
Código
String name = null;
int number;
java.io.BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
name = in.readLine(); // If the user has not entered anything, assume the default value.
number = Integer.parseInt(in.readLine()); // It reads only String,and we need to parse it.
System.out.println("Name " + name + "/t number " + number);
java.util.Scanner sc = new Scanner(System.in).useDelimiter("//s");
name = sc.next(); // It will not leave until the user enters data.
number = sc.nextInt(); // We can read specific data.
System.out.println("Name " + name + "/t number " + number);
// The Console class is not working in the IDE as expected.
java.io.Console cnsl = System.console();
if (cnsl != null) {
// Read a line from the user input. The cursor blinks after the specified input.
name = cnsl.readLine("Name: ");
System.out.println("Name entered: " + name);
}
Entradas y salidas de Stream
Reader Input: Output:
Yash 777 Line1 = Yash 777
7 Line1 = 7
Scanner Input: Output:
Yash 777 token1 = Yash
token2 = 777
Scanner scan = new Scanner(System.in);
String myLine = scan.nextLine();
import java.util.*;
class Ss
{
int id, salary;
String name;
void Ss(int id, int salary, String name)
{
this.id = id;
this.salary = salary;
this.name = name;
}
void display()
{
System.out.println("The id of employee:" + id);
System.out.println("The name of employye:" + name);
System.out.println("The salary of employee:" + salary);
}
}
class employee
{
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
Ss s = new Ss(sc.nextInt(), sc.nextInt(), sc.nextLine());
s.display();
}
}
import java.util.Scanner;
public class ScannerDemo {
public static void main(String[] arguments){
Scanner input = new Scanner(System.in);
String username;
double age;
String gender;
String marital_status;
int telephone_number;
// Allows a person to enter his/her name
Scanner one = new Scanner(System.in);
System.out.println("Enter Name:" );
username = one.next();
System.out.println("Name accepted " + username);
// Allows a person to enter his/her age
Scanner two = new Scanner(System.in);
System.out.println("Enter Age:" );
age = two.nextDouble();
System.out.println("Age accepted " + age);
// Allows a person to enter his/her gender
Scanner three = new Scanner(System.in);
System.out.println("Enter Gender:" );
gender = three.next();
System.out.println("Gender accepted " + gender);
// Allows a person to enter his/her marital status
Scanner four = new Scanner(System.in);
System.out.println("Enter Marital status:" );
marital_status = four.next();
System.out.println("Marital status accepted " + marital_status);
// Allows a person to enter his/her telephone number
Scanner five = new Scanner(System.in);
System.out.println("Enter Telephone number:" );
telephone_number = five.nextInt();
System.out.println("Telephone number accepted " + telephone_number);
}
}