• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pcaldeira

[Dúvida] Reverter valor de uma string

6 mensagens neste tópico

Boas,

gostava de saber se em C# existe uma função equivalente à do VB StrReverse(string), ou seja, que me permitisse inverter o valor de uma string.

Por exemplo, converter "abc" em "cba".

Já tentei um conversor de VB para C# e parece que não há nenhum method para isso.

Sendo assim, como poderei criar um que faça isso?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei se existe alguma função pra isso. Mas sempre podes criar um DLL com uma função tua.

Aqui fica um método para reverter uma string recursivamente.

public static string Reverse(string strValue)
{
    // this is the Termination of the Recursion when the string
        // length is 1 means on char
    if(strValue.Length==1)
    {
        return strValue;
    }
    else
    {
        //print the or store the 1st char every time,
        //so that when 1st Char stored will be the end of the string
        //this way the string will be reversed
        return Reverse( strValue.Substring(1) ) + strValue.Substring(0,1);
    }
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Optei por utilizar um algoritmo aparentemente mais simples (ou pelo menos para mim, que ainda não sei o que é recursividade, mas depois de ler o teu código parece-me que é invocar um method dentro desse mesmo methor). Aqui vai o tal código:

string num = "string";
string num2 = ""
for (int i3 = 0; i3 <= (num.Length - 1); i3++)
                    {
                        num2 = num.Substring(i3,1) + num2;
                    }

Não preciso de verificar se o Length é 1 pois no meu caso isso nunca vai acontecer.

Obrigado pelo teu código na mesma.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

public string Reverse( string theString ) 
{ 
char[ ] c = theString.ToCharArray(); 
Array.Reverse(c); 
return new string(c); 
} 

/ing

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Optei por utilizar um algoritmo aparentemente mais simples (ou pelo menos para mim, que ainda não sei o que é recursividade, mas depois de ler o teu código parece-me que é invocar um method dentro desse mesmo methor).

(...)

Não preciso de verificar se o Length é 1 pois no meu caso isso nunca vai acontecer.

Obrigado pelo teu código na mesma.

Só precisarias de verificar o comprimento se usasses recursividade.

E sim, em traços muito gerais a recursividade consiste numa função que se chama a si própria até encontrar a condição de paragem (neste caso, quando o comprimento da string fosse 1).

Pessoalmente não sou grande adepto da recursividade, pois tenho a impressão (ou a mania) que esta torna o programa muito mais pesado, mas há problemas muito mais fáceis de resolver recursivamente, como neste caso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora