어떻게 문자열에서 문자를 'A'대체 할 수 있으며, 재귀의 더 두로 교체?

새로운 사용자 :
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;
}

나는이 일을 위해 자바 프로그램을 쓰고 있어요, 프로그램은 더는 '예를 들어, 사용자 입력 "철자 바꾸기가"출력 "aaanaaagraaam"될 경우 두 사람과 함께 문자'A '의 발생을 교체해야합니다. 이것은 재귀 적으로 어떤 아이디어를 수행해야합니다? 난 내가 어떤 질문을, 나는 확실히에 아니에요 바른 길에 생각 해요. 나는 3의 포함 된 문자열이라는 N을했습니다 알고하지만 난 하나를 제거하면 나는 나는 3 명 A의로 대체해야합니다 생각했다.

아빈 드 쿠마 Avinash :

당신은 OOTB (아웃 오브 박스)를 사용하여 그것을 할 수있는 문자열 : 완전히 대체의 기능 또는 다음과 같이 정의 재귀 함수를 사용하여 :

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);
        }
    }
}

샘플 실행 :

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

사용자 정의 재귀 함수의 논리는 정직하고 단순하고 있습니다. 의심 / 문제의 경우에 의견을 주시기 바랍니다.

추천

출처http://43.154.161.224:23101/article/api/json?id=364840&siteId=1