Olá pessoal!
Qual é o classe.método que faz a inversao do conteudo de uma variável string?
Inverter ordem de string
7 Respostas
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.
Usa StringBuilder.reverse().
String s = "TEXTO";
String invertida = "";
for (int i = s.length(); i < 0; i++) {
invertida += s.charAt(i);
}
System.out.println(invertida);
É mais fácil assim:
String s = "TEXTO";
String invertida = new StringBuilder(s).reverse().toString();
É 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!
O problema é só a performance miserável de se usar += numa String dentro de um for.
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.
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.