positions de swap de la première apparition de la lettre « a » avec la dernière apparition de la lettre « o » Java

artshakhov:

La tâche me demande de faire de la chaîne, par exemple « aaligatoor », sortie comme: « oaligatoar » J'ai trouvé une solution comme:

public static String letterReplacement(final String word) {
            String o = "o";
            String a = "a";
            if (word.contains("a") && word.contains("o")) {
                return word.replaceFirst("a", "o")
                           .replaceFirst("(?s)(.*)" + 'o', "$1" + 'a');
            } else {
                return "Your word does not contain both of 'a' and 'o' letters, sorry...";
            }
        }

mais il semble difficile, peut-être quelqu'un connaît des façons plus compréhensible pour résoudre ce problème? Je vous remercie de votre aide et beaucoup d'attention.

Shar1er80:

Trouvez le premier indice du « a » ( String.indexOf()) et le dernier indice de « o » ( String.lastIndexOf()). Si les deux indices sont> -1 puis échanger les lettres

Quelque chose comme:

public class StackOverflow {
    public static void main(String[] args) {
        String data = "aaligatoor";

        int firstAindex = data.indexOf("a");
        int lastOindex = data.lastIndexOf("o");

        if (firstAindex > -1 && lastOindex > -1) {
            char[] letters = data.toCharArray();
            letters[firstAindex] = 'o';
            letters[lastOindex] = 'a';

            data = new String(letters);
        }
        System.out.println(data);
    }
}

Résultat

oaligatoar

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=196008&siteId=1
conseillé
Classement