Como fazer string reversa em Java?
Publicados: 2023-01-06Uma string é uma sequência de caracteres e é tratada como um objeto em Java. É um objeto em Java que armazena os dados em um array de caracteres. Uma string invertida é chamada de string reversa. Por exemplo, o inverso da string 'programa' é 'margorP'.
Índice
A lógica por trás da reversão de string em Java:
Várias maneiras estão disponíveis para inverter uma string, cada uma usando funções separadas. Embora os métodos usados sejam diferentes, o processo fundamental por trás da reversão da string é quase o mesmo. A lógica típica usada é:
- Insira uma string usando a entrada do usuário ou no código.
- Pegue os caracteres da string começando na última posição e salve-os em qualquer variável.
- Exibir a saída.
Aprenda Cursos de Desenvolvimento de Software online nas melhores universidades do mundo. Ganhe Programas Executivos de PG, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.
Vários métodos para inverter a string em Java:
- Usando StringBuffer ou StringBuilder
- Usando iteração reversa
- Usando o método charAt()
- Usando o objeto ArrayList
- Usando recursão
- Converter String em Bytes
- Usando pilha
Vamos examinar cada um desses métodos em detalhes.
Cursos e artigos populares sobre engenharia de software
Programas Populares | |||
Programa Executivo PG em Desenvolvimento de Software - IIIT B | Programa de Certificação Blockchain - PURDUE | Programa de Certificação de Segurança Cibernética - PURDUE | MSC em Ciência da Computação - IIIT B |
Outros artigos populares | |||
Salário de engenheiro de nuvem nos EUA 2021-22 | Salário do arquiteto de soluções da AWS nos EUA | Salário do desenvolvedor de back-end nos EUA | Salário do desenvolvedor front-end nos EUA |
Salário do Desenvolvedor Web nos Estados Unidos | Perguntas da entrevista do Scrum Master em 2022 | Como iniciar uma carreira em segurança cibernética em 2022? | Opções de carreira nos EUA para estudantes de engenharia |
1. Por StringBuilder / StringBuffer
A classe StringBuffer ou StringBuilder possui um método integrado reverse() que inverte os caracteres na string. Substitui a sequência dos caracteres na ordem inversa. Este método é o método estático que implementa a lógica para inverter string em java .
O StringBuffer e o StringBuilder são duas classes utilitárias em Java que gerenciam a alocação de recursos para manipulações de strings.
Usando StringBuffer:
Programa Java que inverte uma string usando StringBuffer:
classe pública ExampleofReverseString{
public static void main(String[] args) {
String str1 = “Maçã”;
//armazena a ordem invertida das strings na variável rev
String rev = new StringBuffer(str1).reverse().toString();
// imprime a string antes do reverso
System.out.println(“\A string antes da reversão é: “+str1);
// imprime a string depois do reverse
System.out.println(“A string após a reversão é: “+rev);
}
}
Saída:
A string antes da reversão é: Apple
A string após a reversão é: elppA
No exemplo acima, a string fornecida como entrada seria armazenada em buffer usando o StringBuffer. Seria então revertido usando o método reverse(). Depois que o buffer for revertido, ele será convertido em uma string usando o método toString().
Usando StringBuilder:
A classe StringBuilder é altamente preferida em comparação com a classe StringBuffer. É mais rápido e não sincronizado.
Programa Java que inverte uma string usando StringBuilder:
classe pública ExampleofReverseString{
public static void main(String[] args) {
String str1 = “Escola”;
//armazena a string invertida na variável rev
String rev = new StringBuilder(str1).reverse().toString();
// imprime a string antes do reverso
System.out.println(“\nString antes de inverter: “+str1);
// imprime a string depois do reverse
System.out.println(“String após reversão: “+rev);
}
}
Saída:
String antes de inverter: Escola
String antes de inverter: loohcS
No código acima, o objeto da classe StringBuilder é usado. Os objetos StringBuilder correspondentes são eficientes em termos de memória, mutáveis e rápidos na execução. O objeto chama o método integrado reverse() para fornecer a saída desejada.
2. Por iteração reversa
Programa Java que inverte uma string usando Reverse Iteration:
public class StringReversal {
public static String reverseString(String st){
char ch[]=st.toCharArray();
String revi =””;
for(int i=ch.length-1;i>=0;i–)
{
rev+=ch[i];
}
rotação de retorno;
}
}
public class TestStringReversal {
public static void main(String[] args) {
System.out.println(StringReversal.reverseString("Sou professor "));
System.out.println(StringReversal.reverseString(“Eu ensino disciplina de inglês”));
}
}
Saída:
eu sou rehcaet
I hcaet hsilgnE tcejbus
No programa acima para a string reversa em java , os caracteres da string de entrada são armazenados na variável rev+ começando da última posição usando o loop for. A string invertida será mostrada na saída depois que todos os caracteres forem armazenados.
Você pode usar o While Loop para Reverse Iteration, e seu código é o seguinte:
public class StringReversal {
public static void main(String[] args)
{
String stringInput = “Esta String”;
int StrLength=stringInput.length();
while(StrLength >0)
{
System.out.print(stringInput.charAt(StrLength -1));
StrLength–;
}
}
}
Saída:
gnirtS sihT
3. Usando o método charAt()
Seu programa Java é o seguinte:
public class ExampleofReverseString {
public static void main(String[] args) {
String str = “Aprenda Java”;
//armazena a string invertida na variável revv
String revv = “”;
//comprimento da string será armazenado em len
int len=str.comprimento();
for(int i=len-1;i>=0;i–)
revv = revv + str.charAt(i);
// imprime a string antes do reverso
System.out.println(“\nString antes da operação de reversão: “+str);
// imprime a string depois do reverse
System.out.println(“String após reversão: “+ revv);
}
}
Saída:
String antes da operação de reversão: Aprenda Java
String antes da operação de reversão: avaJ nraeL
Neste programa java para reverter uma string , os caracteres da string de entrada são armazenados na variável revv começando na última posição usando o loop for. Depois que todos os caracteres forem armazenados, a string invertida será refletida na saída.
4. Usando o objeto ArrayList
Seu programa Java é o seguinte:
importar java.util.ArrayList;
importar java.util.Collections;
importar java.util.List;
importar java.util.ListIterator;
public class ExampleofReverseString {
public static void main(String[] args) {
String str = “Aproveite a codificação”;
//converte a string de entrada em um array de caracteres
char ch[]=str.toCharArray();
//adiciona array de caracteres ao objeto do ArrayList
List<Caracteres> obj = new ArrayList<>();
para (carc c: ch)
obj.add(c);
//passa o objeto de ArrayList para as coleções
Coleções.reverse(obj);
//cria objeto de listiterator para repetir na lista
ListIterator objnew = obj.listIterator();
// imprime a string antes da reversão
System.out.println(“\nString antes da operação de reversão: “+ str);
// imprime a string após a reversão
System.out.println(“\nString após operação de reversão: “);
while (objnew.hasNext())
System.out.print(objnew.next());
}
}
Saída:
String antes da operação de reversão: Aproveite a codificação
String após a operação de reversão: gnidoc yojnE
Este programa java para inverter uma string armazena os caracteres da string de entrada no objeto ArrayList. Ele é revertido usando o método reverse () nas coleções. O iterador itera na lista e imprime a string invertida depois que ela é invertida.
5. Usando Recursão
Seu programa Java é o seguinte:
public class ExampleofReverseString {
// define a função de reversão
String revs(String str) {
// retorna null se o comprimento da string for zero
if(str.length() == 0)
{
Retorna " ";
}
//caso contrário retorna o caractere resultante do seguinte método
return str.charAt(str.length()-1) + revs(str.substring(0,str.length()-1));
}
public static void main(String[ ] args)
{
// cria um objeto da classe
ExampleofReverseString r = new ExampleofReverseString ();
//insere string
String str = “Mestre em Java”;
// imprime a string antes da reversão
System.out.println(“\nString antes da operação de reversão: “+ str);
// imprime a string após a reversão
System.out.println(“\nString após operação de reversão: ” + r.revs(str));
}
Saída:
String antes da operação de reversão: Mestre em Java
String após a operação de reversão: avaJ ni retsaM
Uma função recursiva é gerada neste programa Java. Ele verifica o comprimento da corda e dez reversos. Funciona de forma idêntica à função reversa em java .
6. Pela conversão de uma string em bytes
Ele usa o método getBytes() que converte ou divide a string de entrada em bytes. Nesse momento, o comprimento da matriz de bytes é igual ao comprimento da string de entrada. O programa então obtém os bytes na ordem inversa e os salva em uma nova matriz de bytes.
No código a seguir, uma matriz de bytes é gerada temporariamente. Arrays de dois bytes são criados - um para armazenar os bytes convertidos e outro para salvar o resultado na ordem inversa.
Seu programa Java é o seguinte:
public static void main(String[] arg) {
String valor de entrada = “Computador”;
byte[] strByteArray = inputvalue.getBytes();
byte[] resultado = new byte[strByteArray.length];
// Armazena o resultado em ordem inversa no resultado byte[]
for (int i = 0; i < strByteArray.length; i++)
resultado[i] = strByteArray [strByteArray.length – i – 1];
System.out.println( “String após a operação reversa é:” +new String(resultado));
}
Saída:
String após a operação inversa é: retupmoC
7) Usando pilha
Este método envolve as seguintes etapas para reverter uma string Java usando a estrutura de dados Stack.
- Crie uma pilha sem caracteres.
- Transforme uma string de entrada em uma matriz de caracteres usando o método String.toCharArray(). Posteriormente, adiciona cada caractere à pilha.
iii. Recupere os caracteres da pilha até que ela esteja vazia e, em seguida, atribua novamente os caracteres a uma matriz de caracteres. Então, agora os personagens chegarão na ordem inversa.
- A matriz de caracteres é convertida em uma string usando String.copyValueOf(char[]) e finalmente retorna a nova string.
Seu programa Java é o seguinte:
importar java.util.Stack;
classe principal
{
String estática pública reverse(String str)
{
// verifica se a string está vazia ou nula
if (str == null || str.igual(“”)) {
retornar str;
}
// gera uma pilha vazia de caracteres
Stack<Caractere> stack = new Stack<Caractere>();
// adiciona todos os caracteres da string de entrada na pilha
char[] ch = str.toCharArray();
for (int i = 0; i < str.length(); i++) {
stack.push(ch[i]);
}
// começa do índice 0
int m = 0;
// recupera caracteres da pilha até que ela fique vazia
while (!stack.isEmpty())
{
// atribui cada caractere recuperado de volta ao array de caracteres
ch[m++] = pilha.pop();
}
// transforma o array de caracteres em uma string e a retorna
return String.copyValueOf(ch);
}
public static void main(String[] args)
{
String str = “Inovação Tecnológica”;
str = inverter(str);
System.out.println(“O reverso da string de entrada: ” + str);
}
}
Saída
O reverso da string de entrada: ygolonhceT noitavonnI
Comece sua jornada Java com UpGrad
Se você deseja aprender Java, deve entender os conceitos básicos de Java. Para isso, você pode cursar o Mestrado em Ciência da Computação da UpGrad . Abrange tópicos como Core Java, conceitos OOPS, objetos e classes em Java, Métodos em Java, Java Virtual Machine, Polimorfismo, Herança, Abstração, Encapsulamento, etc. Você receberá orientação de especialistas do setor. Esses especialistas conduzem sessões interativas ao vivo que cobrem o currículo e tópicos avançados.
Qual é a maneira mais simples de inverter uma String em Java?
A maneira mais simples de inverter uma String em Java é usando a classe StringBuffer. Ele suporta um método conhecido como reverse() que reverte o conteúdo do objeto StringBuffer existente e retorna o objeto StringBuffer de saída.
O que é o método recursivo em Java?
Um método que chama a si mesmo é chamado de método recursivo em Java. O processo correspondente é chamado de recursão.
Quais são as aplicações de String em Java?
Em Java, Strings podem ser usadas para detectar plágio em códigos. Eles podem ser usados para codificação e decodificação para transferência segura de dados do remetente para o destinatário. Os aplicativos de string ajudam você a recuperar informações de fontes de dados anônimas. Além disso, Strings e seus aplicativos de algoritmos fornecem filtros aprimorados para resolver o problema de sobreposição de prefixo e sufixo aproximado.