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?
Nunca trabalhei em C#, e o que sei é de VB6. Já programaste em VB6? Se sim, tens aqui o código duma função em VB6 que eu fiz agora para ti : Código: Private Function Reverse(ToReverse As String) As String Dim i As Integer Dim FinalStr As String If Not Len(ToReverse) < 1 Then For i = 1 To Len(ToReverse) FinalStr = Mid(ToReverse, i, 1) & FinalStr Next i End If Reverse = FinalStr End Function A teoria é, para inverteres uma string (OLA), fazes um ciclo de todos os caracteres da string - neste caso, OLA tem 3 caracteres. Pegas neles um a um da esquerda para a direita, e acrescenta-los à esquerda da string final. Isto é, "OLA" - string inicial "" - string final string final = primeiro caracter da string inicial ("O") & string final ("") string final = segundo caracter da string inicial ("L") & string final ("O") string final = terceiro caracter da string inicial ("A") & string final ("LO") string final = "ALO". Espero que esta explicação tenha sido suficiente. Se souberes, diz-me o equivalente para o For...Next e para a função Mid() em C# e eu tento recriar o código nessa língua Cumps [[[[[[[[[[]]]]]]]]]] angelofwisdom edit - ja agora, não é um method, mas sim uma função
Boas, vi agora a tua resposta. Vou tentar implementá-la em C# amanhã e, se não conseguir, digo-te então os equivalentes para o For...Next e para Mid(). Obrigado
Se eu integrar a função numa class (que é o que pretendo fazer) passa a ser um method, invocado através de class.method(parameters), certo? Corrijam-me se estiver errado, é que sou newbie na programação e ainda não domino bem o Object Oriented Programming.
Se me deres os equivalentes, dá-me também exemplos sff é que sendo C# deve ter uma sintaxe à C. Que eu saiba, não deixa de ser uma função, a menos que faças "resposta = class.method(parameters)". Aí seria method, mas não sei se se deve fazer class.reverse(string) penso que mantendo como uma função pública resulta (isto é, a função está na classe, mas não é preciso fazer "class.reverse". "Reverse" bastaria)... mas isto é falando em VB6... Cumps [[[[[[[[[[]]]]]]]]]] angelofwisdom
podes usar uma função recursiva que recebe uma string como parâmetro. não sei como fazer em c# mas vou fazer em java. acho que é parecido Código: public static String revertString(String aString) { if (aString == null || aString.equals("")) return ""; else return (revertString(aString.substring(1)) + aString.charAt(0)); } usares ou nao o modificador static depende apenas do uso que queiras dar à função. cumprimentos.
Obrigado a todos pela ajuda, mas bastou-me utilizar o algoritmo do angel of wisdom, aqui fica o código em C#: Em C# a syntax para a os ciclos for é for(declaração e inicialização da variável; situações em que o ciclo vai ser executado (neste caso, enquanto num.Length -1 for maior ou igual a i3); operação a executar após cada iteração (neste caso, incrementar i3 em 1)).
Boas, Podes tb começar no fim na string e fazeres o for "andar para tras" for(i=length-1;i=0;i--) { result += str; } penso k resolta.