Jump to content

Copiar até um determinado elemento da string


Recommended Posts

Podes generalizar a coisa com uma funçãozita não-recursiva, para conseguires entender:

(só precisas da Function CadeiaAte. O resto é contexto de uma ConsoleApp, para teres a "full picture")

Module Module1

   Sub Main()
       Dim cadeia As String = "AbcAbcAbcCde"
       Console.WriteLine(CadeiaAte(cadeia, "c", 3))
   End Sub

   Public Function CadeiaAte(cadeia As String, caractere As String, repeticao As Integer)
       If cadeia.ToCharArray().Count(Function(c) c = "c") < repeticao Then
           Return cadeia
       End If
       Dim Resultado As String = String.Empty
       For Each c As Char In cadeia.ToCharArray()
           If repeticao = 0 Then Exit For
           If c.ToString() = caractere Then repeticao -= 1
           Resultado &= c.ToString()
       Return Resultado
   End Function

End Module

Se usares muito até podes fazer uma extensão para a classe String, que depois usas directamente nas strings, por exemplo:

Dim cadeia As String = "AbcAbcAbcCde"
  • Vote 1

Sérgio Ribeiro

"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.