martes, 7 de julio de 2026

Eliminar un dígito x de un número introducido por teclado en Java

Código del ejercicio:

package ejercicio;

import java.util.Scanner;

public class Ejercicio {

    public static void main(String[] args) {
        int r = 0, p = 1, n, x;
        Scanner sc = new Scanner(System.in);
        System.out.print("Ingrese un número: ");
        n = sc.nextInt();
        System.out.print("Ingrese un dígito: ");
        x = sc.nextInt();
        while(n > 0){
            int d = n % 10;
            if(d != x){
                r += d * p;
                p *= 10;
            }
            n /= 10;
        }
        if(r == 0){
            System.out.print("El resultado no tiene dígitos.");
        }else{
            System.out.print("El resultado es: " + r);
        }
    }

}

Definición de los códigos del ejercicio:

import java.util.Scanner; --> Importación explícita de Scanner.
Scanner sc = new Scanner(System.in); --> objeto de Scanner con nombre sc.
Scanner --> clase Scanner nos permite ingresar datos por teclado.
new --> palabra reservada que instancia un objeto de la clase Scanner.
System.in --> parámetro que indica de donde proceden los datos, en este caso del teclado.
System.out.print() --> imprime el texto en la consola y el cursor permanece al final del texto en la consola.
int --> dato entero de 32 bits.
nextInt() --> lee un número entero desde consola (teclado).
while --> el ciclo while recorre un bloque de código siempre que una condición específica sea verdadera.
> --> el operador mayor que ( > ) devuelve true si el operando izquierdo es mayor que el operando derecho.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
else --> use else para especificar un bloque de código a ejecutar, si la misma condición es falsa.
% --> el operador de modulo ( % ) devuelve el resto de la división.
!= --> el operador de desigualdad ( != ) comprueba si sus dos operandos no son iguales y devuelve un resultado booleano.
*= --> el operador de asignación de multiplicación ( *= ) multiplica el valor del operando derecho de una variable y asigna el resultado a la variable.
/= --> el operador de asignación de división ( /= ) divide el valor del operando derecho de una variable y asigna el resultado a la variable.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
+ --> el operador ( + ) concatena variables de cadena.

Explicación del Código:

Este programa solicita al usuario un número entero y un dígito. Luego recorre el número dígito por dígito y elimina todas las apariciones del dígito indicado. Finalmente muestra el nuevo número formado con los demás dígitos.

Explicación de cada parte del código

  • Declaración de variables
    int r = 0, p = 1, n, x;
    • r: almacena el número resultante después de eliminar el dígito.
    • p: indica la posición decimal (1, 10, 100, 1000...).
    • n: guarda el número ingresado por el usuario.
    • x: guarda el dígito que se desea eliminar.
  • Crear el objeto Scanner
    Scanner sc = new Scanner(System.in);
    Permite leer los datos que escribe el usuario desde el teclado.
  • Leer el número
    System.out.print("Ingrese un número: "); n = sc.nextInt();
    Se solicita al usuario un número entero y se guarda en la variable n.
  • Leer el dígito a eliminar
    System.out.print("Ingrese un dígito: "); x = sc.nextInt();
    El usuario escribe el dígito que desea eliminar del número.
  • Recorrer el número
    while(n > 0)
    El ciclo continúa mientras el número tenga dígitos por revisar. En cada repetición se analiza un dígito.
  • Obtener el último dígito
    int d = n % 10;
    El operador % 10 obtiene el último dígito del número.
  • Verificar si el dígito es diferente al que se quiere eliminar
    if(d != x)
    Si el dígito actual es diferente de x, se conserva. Si es igual, simplemente se ignora.
  • Construir el nuevo número
    r += d * p; p *= 10;
    • Se agrega el dígito al resultado.
    • Después se multiplica p por 10 para colocar el siguiente dígito en la posición correcta.
  • Eliminar el último dígito del número original
    n /= 10;
    Al dividir entre 10 se elimina el último dígito, permitiendo analizar el siguiente.
  • Comprobar si quedó algún dígito
    if(r == 0)
    Si el resultado es 0 significa que todos los dígitos fueron eliminados.
  • Mostrar el resultado
    System.out.print("El resultado es: " + r);
    Se imprime el número obtenido después de eliminar el dígito indicado.

Ejemplo de ejecución

Ingrese un número: 527252
Ingrese un dígito: 2

Resultado:
575

Todos los dígitos 2 fueron eliminados del número original (527252), quedando únicamente 575.

Resumen:

El programa lee un número y un dígito. Después recorre el número desde el último dígito hasta el primero utilizando un ciclo while. Cada vez que encuentra un dígito diferente al indicado por el usuario, lo agrega al número resultado. Si el dígito coincide con el que se desea eliminar, simplemente lo omite. Al finalizar, muestra el nuevo número sin ese dígito o informa que no quedó ningún dígito.

No hay comentarios.:

Publicar un comentario

Mostrar los n primeros números de la siguiente serie: 1,3,9,11,33,35,105,107,... en Java

Código del ejercicio: package ejercicio; import java.util.Scanner; public class Ejercicio {     public static void ma...

Copyright ©2025 Ejercicios de programación. Todos los derechos reservados. ❤️