Invertendo uma String

11 respostas
Kassiane_Pretti

Gostaria de saber se existe um metodo em java que inverte uma string…

Tipo: java = avaj

Eu queria usar um metodo da api e não implementar na mão…

Desde já agradeço a todos… :roll:

11 Respostas

thiago.correa

Tenta isso

StringBuffer string = new StringBuffer("java");
System.out.println(string.reverse().toString());

:wink:

Henrik

Acho que é isso

String s = new StringBuilder("ola").reverse().toString();
Kassiane_Pretti

Valeu gente

=)

Henrik

Prefira StringBuilder, é mais rapido do que StringBuffer na maioria dos casos

jopss

a diferença é só na rapidez?

jopss :stuck_out_tongue:

D

Ele é mais rapido em todos os casos… porém não é thread-safe =)

Alguem aqui programa em haskell? Esse exercicio é bem tipico da linguagem…hehehehe:

Resolução em haskell… =P
invStr [] = []
invStr (a : x) = (invString x) : a

Abraços =P

Linkel

Mas nesse caso não faz diferença… É perceptível apenas em casos de várias instâncias…
Ainda assim, prefiro StringBuffer na maioria dos casos, rsrs…
Um abraço!

S

Mas nesse caso não faz diferença… É perceptível apenas em casos de várias instâncias…
Mas não deixa de ser o correto. Afinal, pra que usar um objeto thread-safe quando isso não é necessário?

Por quê?

Mavericks

StringBuilder faz a mesma coisa que StringBuffer, a diferença é que StringBuilder existe a partir do Java 5.

sergiotaborda

Sim e não. A diferença é que StringBuilder não é thread-safe. Em consequência disso é mais rápido.
A necesidade de sincronizar com um StringBuffer é infinitésimal. Ninguem faz isso. Tlv algum projeto recôndito
de manipulação de Strings, mas em 99,99% dos casos não é necessário Thread-safe. O uso de StringBuffer/Builder
se dá normalmente dentro de um método. O objeto não tem como ser acessado de várias threads e morre quando o método acaba. Em consequencia disso não existe razão nenhum para usar - num programa comum - StringBuffer quando ha um StringBuilder disponivel.

Nota: os dois implementa Appendable. Essa é a interface que deve ser usada quando o objeto viaja entre classes.
E ai a escolha entre um ou outro pode mudar se um dia se descobrir que afinal tem que ser threadSafe. É a mesma ideia que Hashtable e HashMap. Use Map e decida depois.
Para operações especiais como reverse tem que usar o StringBuilder/Buffer mesmo, mas isso é uma operação só. Não está em causa sequer a necessidade de thread-safe

thiago.correa

tenta esse que é performático e ainda por cima é thread-unsafe :wink:

String string = "java";
       String temp = "";
       for (int i = (string.length() - 1); i >= 0; i--) {
           temp += string.charAt(i);
       }
       System.out.println(temp);
Criado 10 de abril de 2008
Ultima resposta 11 de abr. de 2008
Respostas 11
Participantes 9