artshakhov:
La tarea me pide que haga de la cadena, por ejemplo "aaligatoor", una salida como: "oaligatoar" He encontrado una solución como:
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...";
}
}
pero se ve complicado, tal vez alguien sabe alguna forma más comprensible para resolver esto? Agradezco su asistencia y atención mucho.
Shar1er80:
Encuentra el primer índice de la "a" ( String.indexOf()
) y el último índice de "O" ( String.lastIndexOf()
). Si ambos índices son> -1 luego intercambiar las letras
Algo como:
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);
}
}
Resultado
oaligatoar