Leer un char por teclado en Java

Cómo leer un carácter desde teclado en Java

La clase Scanner NO CONTIENE un método nextChar() para leer un dato de tipo char desde teclado.

Si queremos leer un solo carácter desde teclado podemos hacerlo de dos formas:

  • Utilizando el método next() o nextLine()  de Scanner.
  • Ulilizando el método System.in.read(); Este método no pertenece a la clase Scanner.

Ejemplo 1: Programa Java que lee un carácter por teclado y lo muestra por pantalla utilizando el método next.

import java.util.Scanner;
public class EjemploLecturaChar {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        char caracter; 
        System.out.print("Introduce un carácter: ");
        caracter = sc.next().charAt(0);  //se obtiene el primer carácter del String introducido por teclado       
        System.out.println("Carácter introducido -> " + caracter);                                                
    }
}

El método next() extrae del buffer el siguiente token en forma de String. A partir de este String podemos obtener su primer carácter mediante el método charAt(0).

Ejemplo 2: Programa Java que lee un carácter por teclado y lo muestra por pantalla utilizando el método System.in.read().

public class EjemploLecturaChar {
       public static void main(String[] args) throws IOException {                                                
              char caracter;
              System.out.print("Introduce un carácter: ");
              caracter = (char)System.in.read();
              System.out.println("Carácter introducido -> " + caracter);                                          
       }
}

Este método read() devuelve un int correspondiente al código del carácter introducido por teclado. Por eso es necesario realizar la conversión a tipo char antes de hacer la asignación a la variable carácter.


 
El método System.in.read() puede lanzar una excepción por lo que hay que añadir en la cabecera del método main lo siguiente: throws IOException
public static void main(String[] args) throws IOException {          

4 comentarios:

  1. import java.util.Scanner;
    public class CicloWhile2
    {
    public static void main(String args[])
    {
    Scanner entrada = new Scanner (System.in);
    String seguir="s";

    while (seguir=="s")
    {

    System.out.println("Ingresa un numero :");
    int num=entrada.nextInt();

    System.out.println("el numero es : "+num);

    System.out.println("Deseas continuar s/n ");
    seguir=entrada.next();
    System.out.println(seguir);
    }
    }
    }

    ResponderEliminar
  2. En el segundio ejemplo falta:
    import java.io.IOException;
    ¿no?

    ResponderEliminar