Skip to content

1.12 Herramientas útiles para empezar

Generar números aleatorios.

Podemos generar números aleatorios entre 0 y 1 utilizando el método random de la clase Math.

Math.random()

Ejemplo:

1
2
3
4
5
6
7
8
double numero;
int entero;
numero = Math.random();
System.out.println("El número es: "+numero);
numero = Math.random()*100;
System.out.println("El número es: "+numero);
entero = (int)(Math.random()*100);
System.out.println("El número sin decimales es: "+entero);

Math.random

Introducir un texto desde el teclado.

Este método de leer texto y números desde consola no nos servirá cuando comencemos a usar IDE's.

Podemos introducir texto desde el teclado utilizando System.console().readLine();

Devuelve la cadena de caracteres introducida.

Para otro tipo de dato hay que usar métodos de conversión:

  • Integer.parseInt( System.console().readLine() )
  • Double.parseDouble( System.console().readLine() )

Ejemplo 1: Introducción de texto

1
2
3
4
String texto;
System.out.print("Introduce un texto: ");
texto = System.console().readLine();
System.out.println("El texto introducido es: "+ texto);

ejemplo

Ejemplo 2: Introducción de un número entero

1
2
3
4
5
6
String texto2;
int entero2;
System.out.print("Introduce un número: ");
texto2 = System.console().readLine();
entero2 = Integer.parseInt(texto2);
System.out.println("El número introducido es: "+entero2);

ejemplo
ejemplo

Ejemplo 3: Introducción de un número decimal

1
2
3
4
5
6
String texto3;
double doble3;
System.out.print("Introduce un número decimal: ");
texto3 = System.console().readLine();
doble3 = Double.parseDouble(texto3); // convertimos texto a doble
System.out.println("Número decimal introducido es: "+doble3);

ejemplo

Entrada y Salida por consola

Podemos utilizar una variable de tipo Scanner para leer desde consola.

    1º) Para ello deberemos, primero, importar la librería util:

import java.util.*;

    2º) Seguidamente inicializar una variable (en el ejemplo sc) de tipo Scanner:

Scanner sc = new Scanner (System.in);

    3º) Para guardar en las variables correspondientes (int, float, double, string, char...):

1
2
3
4
5
6
7
8
9
entero = sc.nextInt();

decimal = sc.nextFloat();

cadena = sc.next();
// o 
cadena = sc.nextLine();

letra = sc.next().charAt(0);

En el siguiente ejemplo podemos observar mejor lo expuesto:

// importar libreria
import java.util.*;

public class Mostrarinformacion {
    public static void main (String[] args){
        Scanner sc = new Scanner (System.in);
        int entero;
        float decimal;
        String cadena;
        char letra;

        // guardar cadena y convertir a valores y tipos correspondientes:
        System.out.print("Muestra un número entero: ");
        entero = sc.nextInt();

        System.out.print("Muestra un número flotante: ");
        decimal = sc.nextFloat(); //recordar poner coma para el decimal

        System.out.print("Muestra un texto o cadena: ");
        cadena = sc.next(); //solo mostrará la primera palabra
        cadena = sc.nextLine(); //solo mostrará la primera palabra       

        System.out.print("Muestra una sola letra: ");
        letra = sc.next().charAt(0); //solo mostrará la primera letra

        // mostrar en ventana los valores:
        System.out.println("Salida:");
        System.out.println("El número entero guardado es: "+entero);     
        System.out.println("El número decimal guardado es: "+decimal);     
        System.out.println("El texto guardado es: "+cadena);     
        System.out.println("La primera letra guardada es: "+letra);    
    }
}

ejemplo

Entrada y Salida con JOptionPane

Otra forma de introducir y mostrar información, más elegante que por consola, es utilizar ventanas.

    1º) Para ello deberemos, primero, importar la librería util:

import javax.swing.JOptionPane;

    2º) Para guardar la información que introduciremos desde la ventana emergente:

variable_string = JOptionPane.showInputDialog ("texto en descripción de ventana:");

Se almacena siempre cadenas

Debemos tener en cuenta que la información que se recoge en dicha ventana es SIEMPRE una cadena; por lo que, si queremos almacenar su valor con otro tipo de datos distinto, deberemos hacerlo explícitamente mediante el tipo de datos en cuestión y método parse.

1
2
3
4
5
entero = Integer.parseInt( JOptionPane.showInputDialog ("inserta un número entero:"));

decimal= Double.parseDouble( JOptionPane.showInputDialog ("inserta un número decimal:"));

letra= JOptionPane.showInputDialog ("inserta una letra:").charAt(0);

    3º) Para mostrar por ventana emergente alguna variable:

JOptionPane.showMessageDialog(null, "la cadena es: " + cadena);

En el siguiente ejemplo podemos observar mejor lo expuesto:

// importar libreria
import javax.swing.JOptionPane;

public class Mostrarinformacion {
  public static void main (String[] args){
    String cadena;
    int entero;
    char letra;
    double decimal;

    // guardar cadena y convertir a valores y tipos correspondientes:
    cadena = JOptionPane.showInputDialog ("texto en descripción de ventana:");
    entero = Integer.parseInt( JOptionPane.showInputDialog ("inserta un número entero:")); // convertir la cadena a otro tipo; como entero
    decimal= Double.parseDouble( JOptionPane.showInputDialog ("inserta un número decimal:"));
    letra= JOptionPane.showInputDialog ("inserta una letra:").charAt(0);

    // mostrar en ventana los valores:
    JOptionPane.showMessageDialog(null, "la cadena es: "+cadena);
    JOptionPane.showMessageDialog(null, "el número entero es: "+entero);
    JOptionPane.showMessageDialog(null, "la número decimal es: "+decimal);
    JOptionPane.showMessageDialog(null, "la letra es: "+letra);       
  }
}

Introducción de datos:

ejemplo
ejemplo
ejemplo
ejemplo
Salida de datos:
ejemplo
ejemplo
ejemplo
ejemplo