Por exemplo a frase “Agora vamos fazer” para ficar “oraAg mosva zerfa”.
String [] words = line.split(" ");
String reversedString = "";
for (int i = 0; i < words.length; i++) {
String word = words[i];
String reverseWord = "";
for (int j = word.length()-1; j >= 0; j--){
reverseWord += word.charAt(j);
}
reversedString += reverseWord + " ";
}
System.out.println(reversedString);
Mas com este programa fica "arogA somav rezaf ".
Qual é a regra para inverter?
Primeiro eu tinha entendido que era pra inverter as sílabas, mas se fosse isso mesmo, a primeira palavra ficaria “ragoA”, pode confirmar?
Se for pra inverter sílabas, é complicado porque você teria que analisar cada palavra segundo as regras da língua portuguesa: http://www.algosobre.com.br/portugues/separacao-silabica.html
Se for outro critério, poderia explicar? Parece - e isso é um grande chute - que é pra pegar os 3 últimos caracteres e depois os 2 primeiros (e só com substring
daria pra resolver), mas aí só funcionaria para palavras de 5 letras. Se o critério for esse mesmo, faltou definir como seria para uma quantidade de caracteres diferente de 5.
Enfim, desculpe se pareço estar sendo muito chato, mas definir bem o problema é o primeiro passo para ter uma solução correta 
Não faz mal, vou tentar explicar… então o que é suposto o programa fazer é inverter a palavra pelo seu centro, por ex: Agora não fica arogA porque assim é inverter do inicio para o final, mas queremos inverter por 2 partes(quando é dividida pelo meio) então fica ora + Ag.
E o programa é só para palavras acima dos 3 carateres.
Então é só pegar o tamanho da palavra e dividir por 2 para achar o meio. Depois use substring
para pegar os pedaços da string antes e depois do meio:
String word = "Agora";
int pos = word.length() / 2;
String reversed = word.substring(pos) + word.substring(0, pos);
1 curtida
ok já percebi obrigado!!!