¿Cómo puedo reemplazar la letra 'a' de una cadena y sustituirla por dos más de una forma recursiva es?

Nuevo Usuario :
import java.util.Scanner;

public class AddAs
{
    public static void main(String[] args)
    {
        Scanner sc1 = new Scanner(System.in);

        System.out.println("Please enter a word:");

        sc1.close();

        String n = ("aaa");

        char s = 'a';

        System.out.println(s2);

        String pp = moreAs(s2, s, n)

        System.out.println(pp);
    }

    public static String moreAs(String p, char s, String n, String s2)
    {
        if (p.length() < 1)
        {
            return p;
        }

        for (int i = 0; i < p.length(); i++)
        {
            if (p.charAt(i) == s)
            {
                p = p.substring(0, 1) + n + p.substring(++i)

                System.out.println(p);

                return moreAs(p, s, n)
            }
        }
    }

    return s2;
}

Estoy escribiendo un programa en Java para el trabajo, el programa debe reemplazar cualquier aparición de la letra 'a' y dos más un' Por ejemplo, si el usuario introduce 'anagrama', la salida sería 'aaanaaagraaam'. Esto debe hacerse de forma recursiva, alguna idea? Creo que estoy en el camino correcto No estoy seguro de que, en hacer cualquier pregunta. Yo sé que he llamado una cadena que contiene n 3a de, pero pensé que si retira en uno tengo que reemplazó con tres aes.

Arvind Kumar Avinash:

Puede hacerlo utilizando OOTB (Out-Of-The-Box) Cadena :: replaceAll función o mediante el uso de su función recursiva encargo de la siguiente manera:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter a string: ");
        String str = sc.nextLine();
        System.out.println("Original string: " + str);
        System.out.println("Updated string: " + str.replaceAll("a", "aaa"));

        // Using recursive function
        System.out.println("Updated string (using recursive function): " + moreAs(str, 0));
    }

    static String moreAs(String str, int n) {
        if (n == str.length()) {
            return str;
        }
        if (str.charAt(n) == 'a') {
            // Call the function recursively after replacing 'a' with 'aaa' in str 
            return moreAs(str.substring(0, n + 1) + "aa" + str.substring(n + 1), n + 3);
        } else {
            // Call the function recursively without changing str
            return moreAs(str, n + 1);
        }
    }
}

Un análisis de la muestra:

Enter a string: anagram
Original string: anagram
Updated string: aaanaaagraaam
Updated string (using recursive function): aaanaaagraaam

La lógica de la función personalizada recursiva es simple y directo. Siéntase libre de comentar en caso de cualquier duda / problema.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=364831&siteId=1
Recomendado
Clasificación