ScannerEn este tutorial voy a enseñarles cómo leer la entrada del usuario.
En Java usamos la clase Scanner, que está en:
java.util
ScannerCuando creamos un Scanner, debemos decirle de dónde leerá datos.
Para leer desde la terminal usamos:
✅ System.in
📌 System.in → entrada (teclado)
📌 System.out → salida (pantalla)
Muchos métodos del Scanner empiezan con next...:
nextByte()nextInt()nextDouble()nextLine()📌 Aquí Java convierte edad a texto automáticamente cuando concatenamos.
Primero mostramos un mensaje, luego leemos:
⚠️ println baja a la siguiente línea.
print vs printlnSi quieres que el usuario escriba en la misma línea, usa print:
Si el usuario escribe 20.1 y tú usas nextByte(), falla.
✅ Si quieres decimales, usa:
nextFloat()nextDouble()next() vs nextLine()Para leer texto tenemos dos opciones:
next() → lee un token(se detiene en espacios)
Si escribes Danna Cruz, solo toma Danna.
nextLine() → lee la línea completaAquí sí toma Danna Cruz completo.
trim()Si el usuario pone espacios al inicio o al final, se ven raros.
Solución: trim():
📌 Esto es encadenamiento de métodos: nextLine().trim()
Math.powimport java.util.Scanner;
public class Potencia {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Ingresa la base: ");
double base = scanner.nextDouble();
System.out.print("Ingresa el exponente: ");
double exponente = scanner.nextDouble();
double resultado = Math.pow(base, exponente);
System.out.println(base + " elevado a la " + exponente + " es: " + resultado);
scanner.close();
}
}nextInt()/nextDouble() + nextLine()Este error pasa MUCHO:
Lees un número con nextInt() o nextDouble()
y luego intentas leer texto con nextLine()…
pero nextLine() parece “saltarse” la entrada 😵
Porque cuando escribes un número y presionas Enter:
✅ el número se lee
⚠️ pero queda el salto de línea \n en el buffer
Entonces nextLine() lee ese Enter pendiente y devuelve una línea vacía.
nextLine() extraimport java.util.Scanner;
public class Type1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Edad: ");
int edad = scanner.nextInt();
scanner.nextLine(); // 👈 limpia el Enter pendiente
System.out.print("Nombre completo: ");
String nombre = scanner.nextLine();
System.out.println("Hola " + nombre + ", tienes " + edad);
scanner.close();
}
}✅ Ahora sí funciona perfecto: lee el número y luego la línea completa.
