viernes, 10 de julio de 2026

Insertar un carácter en una posición específica de una cadena en Java

Código del ejercicio:

package ejercicio;

import java.util.Scanner;

public class Ejercicio {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Ingrese una frase: ");
        String frase = sc.nextLine();
        System.out.print("Ingrese un carácter a insertar: ");
        char x = sc.nextLine().charAt(0);
        System.out.print("Ingrese una posición a insertar: ");
        int p = sc.nextInt();
        String aux = "";
        int i = 0;
        while(i < frase.length()){
            if(i != p){
                aux += frase.charAt(i);
            }else{
                aux = aux + x + frase.charAt(i);
            }
            i++;
        }
        frase = aux;
        System.out.println("frase: " + frase);
    }

}

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.
System.out.println() --> imprime el texto en la consola y el cursor permanece al comienzo de la siguiente línea en la consola.
int --> dato entero de 32 bits.
nextInt() --> lee un número entero desde consola (teclado).
String --> dato de tipo cadena de texto.
nextLine() --> se utiliza para obtener la entrada del usuario.
char --> se utiliza para almacenar un solo carácter. El carácter debe estar entre comillas simples, como 'A' o 'c'.
charAt() --> devuelve el carácter en el índice especificado en una cadena. El índice del primer carácter es 0, el segundo carácter es 1 y así sucesivamente.
while --> el ciclo while recorre un bloque de código siempre que una condición específica sea verdadera.
< --> el operador menor que ( < ) devuelve true si el operando izquierdo es menor que el operando derecho.
length() --> devuelve la longitud de una cadena.
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 desigualdad ( != ) comprueba si sus dos operandos no son iguales y devuelve un resultado booleano.
+= --> el operador de asignación de suma ( += ) suma el valor del operando derecho a una variable y asigna el resultado a la variable.
++ --> el operador de incremento ( ++ ) incrementa (suma uno a) su operando y devuelve un valor.
+ --> el operador ( + ) concatena variables de cadena.

Explicación del Código:

Este programa permite al usuario escribir una frase, indicar un carácter y elegir la posición donde desea insertarlo. Luego genera una nueva cadena con el carácter agregado y finalmente muestra el resultado.

Explicación del código

import java.util.Scanner;

Importa la clase Scanner, que permite leer datos escritos por el usuario desde el teclado.
Scanner sc = new Scanner(System.in);

Crea un objeto Scanner para recibir la información ingresada por el usuario.
System.out.print("Ingrese una frase: ");

Muestra un mensaje solicitando que el usuario escriba una frase.
String frase = sc.nextLine();

Guarda la frase completa ingresada por el usuario en la variable frase.
System.out.print("Ingrese un carácter a insertar: ");

Solicita al usuario el carácter que desea insertar dentro de la frase.
char x = sc.nextLine().charAt(0);

Lee el primer carácter escrito por el usuario y lo almacena en la variable x.
System.out.print("Ingrese una posición a insertar: ");

Solicita la posición donde se insertará el carácter.
int p = sc.nextInt();

Guarda la posición ingresada por el usuario en la variable p.
String aux = "";

Crea una cadena vacía llamada aux, donde se irá formando la nueva frase.
int i = 0;

Inicializa el contador que recorrerá cada carácter de la frase.
while(i < frase.length())

Recorre toda la frase desde el primer carácter hasta el último.
if(i != p)

Verifica si la posición actual es diferente de la posición donde se insertará el nuevo carácter.
aux += frase.charAt(i);

Si la posición no coincide, simplemente copia el carácter original a la nueva cadena.
else

Se ejecuta únicamente cuando el recorrido llega a la posición indicada por el usuario.
aux = aux + x + frase.charAt(i);

Primero agrega el nuevo carácter y después agrega el carácter original que estaba en esa posición. De esta forma el nuevo carácter queda insertado sin eliminar ninguno de los existentes.
i++;

Incrementa el contador para continuar recorriendo la frase.
frase = aux;

La frase original se reemplaza por la nueva cadena que ya contiene el carácter insertado.
System.out.println("frase: " + frase);

Muestra en pantalla la frase final con el nuevo carácter insertado.

Resumen del funcionamiento

  1. El usuario escribe una frase.
  2. Ingresa el carácter que desea insertar.
  3. Indica la posición donde quiere colocarlo.
  4. El programa recorre toda la frase carácter por carácter.
  5. Cuando llega a la posición indicada, inserta el nuevo carácter antes del carácter original.
  6. Finalmente muestra la nueva frase con el carácter agregado.

Ejemplo:

Frase: Hola
Carácter: X
Posición: 2

Resultado: HoXla

No hay comentarios.:

Publicar un comentario

Determinar el número mayor y el número menor de n números en Java

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

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