Eu "Hello World"
mantive em uma variável String chamadahi
.
Preciso imprimi-lo, mas invertido.
Como posso fazer isso? Eu entendo que já existe algum tipo de função embutida no Java que faz isso.
Relacionado: Inverta cada palavra individual da string "Hello World" com Java
Respostas:
Você pode usar isto:
Ou, para versões anteriores ao JDK 1.5, use em
java.util.StringBuffer
vez deStringBuilder
- elas têm a mesma API. Agradecemos aos comentaristas por apontarem queStringBuilder
hoje é o preferido quando não há preocupação de simultaneidade.fonte
StringBuilder
concorrência local descartável não é uma preocupação (e acho que foi isso que ele quis dizer).String hi = "Hello World";
. Então eu acho que, em sua resposta não deve não haver aspas em tornohi
. Quero dizer que deveria ser assimnew StringBuilder(hi).reverse().toString()
Para problemas de Juízes Online que não permitem
StringBuilder
ouStringBuffer
, você pode fazê-lo no local usandochar[]
o seguinte:fonte
http://www.java2s.com/Code/Java/Language-Basics/ReverseStringTest.htm
fonte
fonte
Estou fazendo isso usando as duas maneiras a seguir:
Inverter string por CHARACTERS:
Inverter string por PALAVRAS:
fonte
Dê uma olhada na API Java 6 em StringBuffer
fonte
reverse()
etoString()
), portanto, a diferença provavelmente nem será mensurável.Aqui está um exemplo usando recursão:
fonte
Aqui está uma solução de baixo nível:
fonte
Eu tentei, apenas por diversão, usando uma pilha. Aqui meu código:
fonte
Como o método abaixo (usando XOR ) para reverter uma string não está listado, estou anexando esse método para reverter uma string.
O algoritmo é baseado em:
Fragmento de código:
Resultado:
keetarp
fonte
Como outros já apontaram, a maneira preferida é usar:
Mas se você quiser implementar isso sozinho, receio que o restante das respostas tenha falhas.
O motivo é que
String
representa uma lista de pontos Unicode , codificados em umachar[]
matriz de acordo com a codificação de comprimento variável: UTF-16 .Isso significa que alguns pontos de código usam um único elemento da matriz (uma unidade de código), mas outros usam dois deles; portanto, pode haver pares de caracteres que devem ser tratados como uma única unidade (substitutos "altos" e "baixos" consecutivos) .
fonte
É muito simples no código mínimo de linhas
fonte
Isso fez o truque para mim
fonte
1. Usando matriz de caracteres:
2. Usando StringBuilder:
OU
fonte
Eu usei esse método para transformar nomes para trás e para minúsculas.
fonte
fonte
Uma maneira natural de reverter um
String
é usarStringTokenizer
ae uma pilha.Stack
é uma classe que implementa uma pilha de objetos last-in-first-out (LIFO) fácil de usar.Coloque-o na pilha para frente
Imprimir a pilha para trás
fonte
fonte
Toda a solução acima é muito boa, mas aqui estou fazendo uma string reversa usando programação recursiva.
Isso é útil para quem está procurando uma maneira recursiva de fazer uma string reversa.
fonte
Procedimento:
Podemos usar split () para dividir a string. Em seguida, use o loop reverso e adicione os caracteres.
Fragmento de código:
fonte
public String reverseWords (String s) {
fonte
Você também pode tentar o seguinte:
fonte
fonte
recursão:
fonte
Apenas por diversão..:)
Atravesse i de 0 a len / 2 e depois
Complexidade temporal: O (n)
Complexidade espacial: O (n)
fonte
fonte
fonte
fonte
fonte
Se você quiser usar um simples loop for!
fonte