Oi!!
como faço pra ler uma string e escreve-la na ordem inversa?
ex: macarrao --> oarracam
Oi!!
como faço pra ler uma string e escreve-la na ordem inversa?
ex: macarrao --> oarracam
StringBuilder s1 = new StringBuilder("macarrao");
StringBuilder s2 = s1.reverse();
System.out.println(s2);
T+
public class StringReverse {
public static void main(String[] args) {
StringBuffer sbuf = new StringBuffer("12345");
sbuf.reverse();
System.out.println(sbuf);
}
}
[]'s
Podes pegar apartir da String um array de char e ir percorrendo inversamente o array e colocando esse resultado em outra String.
A lógica é bem simples, e o que poderia ser difícil, está na documentação.
Até!
É só você ler os caracteres da String de trás pra frente…
public void inverterString(String teste){
String etset = "";
for(int i=teste.length()-1; i>=0; i--){
etset += teste.charAt(i);
}
}
Boa galera…
esse fórum é mesmo bom.
Ontem eu respondi uma mensagem onde a pessoa queria
fazer a mesma coisa, ou seja, imprimir uma string reversa.
Só que como não conheço todas facilidades da linguagem
citei a solução de um for reverso (do length da string até 0) igual
de Dani_Barcelos.
Abs
Quote:
esse fórum é mesmo bom.
Ontem eu respondi uma mensagem onde a pessoa queria
fazer a mesma coisa, ou seja, imprimir uma string reversa.
Só que como não conheço todas facilidades da linguagem
citei a solução de um for reverso (do length da string até 0) igual
de Dani_Barcelos.
Dica !! consulte sempre API antes de fazer qualquer coisa e também existem bibliotecas que complementa a API do Java de alguma forma , um exemplo é o Jakarta Commons
Para um problema simples há muitos jeitos de resolver. Um jeito curioso, mas ineficiente de resolver, é assim:
class StringReversa {
/**
* Inverte a ordem dos caracteres de uma string.
* @return A string original, com a ordem dos caracteres invertida.
* Exemplo: "macarrao" -> "oarracam";
* "Socorram-me, subi no onibus em Marrocos" -> "socorraM me subino on ibus ,em-marrocoS"
*/
public static String revert (String s) {
if (s.length() <= 1) {
return s;
} else {
return revert (s.substring (1)) + s.charAt (0);
}
}
public static void main (String[] args) {
System.out.println (revert ("macarrao"));
System.out.println (revert ("Socorram-me, subi no onibus em Marrocos"));
}
}
Isso me cheira a prolog... :lol:class StringReversa { /** * Inverte a ordem dos caracteres de uma string. * @return A string original, com a ordem dos caracteres invertida. * Exemplo: "macarrao" -> "oarracam"; * "Socorram-me, subi no onibus em Marrocos" -> "socorraM me subino on ibus ,em-marrocoS" */ public static String revert (String s) { if (s.length() <= 1) { return s; } else { return revert (s.substring (1)) + s.charAt (0); } } public static void main (String[] args) { System.out.println (revert ("macarrao")); System.out.println (revert ("Socorram-me, subi no onibus em Marrocos")); } }
public static String reverse(String s) {
int length = s.length();
int last = length - 1;
char[] chars = s.toCharArray();
for (int i = 0; i < length / 2; i++) {
char c = chars[i];
chars[i] = chars[last - i];
chars[last - i] = c;
}
return new String(chars);
}
[]'s
Legal a solução recursiva do thingol 
A solução do aleck é duas vezes ( O(n/2) ) mais rápida que a do Dani_Barcelos.