Inverter ordem de string

7 respostas
H

Olá pessoal!
Qual é o classe.método que faz a inversao do conteudo de uma variável string?

7 Respostas

D

hsecco:
Olá pessoal!
Qual é o classe.método que faz a inversao do conteudo de uma variável string?

Creio que na String não tenha um método assim, só se tiver em alguma classe que possa trabalhar com uma String convertida para o tipo da classe.
Mas dá pra fazer isso “na mão”, converte a String para um array de char com o método toCharArray() e depois vc pode empilhar cada caractere e depois desempilhar que fica invertido, assim é só converter pra String de novo.

D

Usa StringBuilder.reverse().

C

String s = "TEXTO"; String invertida = ""; for (int i = s.length(); i < 0; i++) { invertida += s.charAt(i); } System.out.println(invertida);

V

É mais fácil assim:

String s = "TEXTO"; String invertida = new StringBuilder(s).reverse().toString();

C

ViniGodoy:
É mais fácil assim:

String s = "TEXTO"; String invertida = new StringBuilder(s).reverse().toString();

Sim…com certeza StringBuilder é a melhor solução.

Mas é sempre bom mostrar que com um comando fácil, é possível fazer o que se quer. Não é preciso conhecer TODOS os métodos e facilidades da linguagem, apenas saber onde usar o seu conhecimento.

Obs.: Caramba…falei bonito agora!

V

O problema é só a performance miserável de se usar += numa String dentro de um for.

D

claudneto:
Sim…com certeza StringBuilder é a melhor solução.

Mas é sempre bom mostrar que com um comando fácil, é possível fazer o que se quer. Não é preciso conhecer TODOS os métodos e facilidades da linguagem, apenas saber onde usar o seu conhecimento.

claudneto:
String s = "TEXTO"; String invertida = ""; for (int i = s.length(); i < 0; i++) { invertida += s.charAt(i); } System.out.println(invertida);

Olha, sua intenção foi boa, mas além do que o Vini disse a respeito de performance em concatenação de Strings, seu código tá errado. Do jeito que está só vai imprimir uma string em branco.

String s = "TEXTO"; String invertida = ""; for (int i = s.length()-1; i >= 0; i--) { invertida += s.charAt(i); } System.out.println(invertida);

Abraço.

Criado 29 de outubro de 2008
Ultima resposta 29 de out. de 2008
Respostas 7
Participantes 5