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