Salve, pessoal. Estou de volta com mais uma postagem de Visual Basic.NET, a primeira do ZoomDigital.org e a sétima ao todo. As anteriores podem ser conferidas no site Guanabara.info, clicando aqui.
Hoje, vamos ver as funções existentes para manipulação de valores do tipo string, além de funções de conversão entre dados. Mas antes, vamos ver o comportament de algumas declarações importantes.
Lembrando que para o estudo é preciso ter o Microsoft Visual Basic 2008 e o .NET Framework 3.5 instalados corretamente em seus computadores.
Se já tiverem esses componentes instalados, abram o Visual Basic, criem suas Consoles Applications e mão na massa.
Option Strict
A gente já conhece o Option Explicit, que impede que você use uma variável sem declará-la. Para habilitá-la, o comando Option Explicit On pode ser escrito no início do código, antes de qualquer outra declaração. O comando Option Explicit Off desativa a declaração obrigatória, sendo que o default é obrigar a declaração.
Agora, veja o código abaixo, que à primeira vista tem um problema:
Dim ValorReal As Double = 4.56
Dim ValorInteiro As Integer
ValorInteiro = ValorReal
Se você não identificou o “problema” do código acima, clique aqui e leia o post sobre variáveis.
A princípio, a atribuição que foi feita é inválida, mas na verdade ela não é. O que acontece é que o VB automaticamente faz a conversão do tipo Double para o tipo Integer, e o que vai ser armazenado na variável ValorInteiro é o arredondamento de ValorReal.
O VB arredonda para mais quando o valor da primeira casa decimal foi maior ou igual a cinco, e arredonda para menos se for menor ou igual a quatro.
Veja que a parte fracionária é perdida. Mas você pode desabilitar essa conversão.
Isso é feito com a declaração Option Strict. Quando declarada como Option Strict On, ela impede que conversões implícitas que possam resultar em perda de dados sejam feitas, e declarada como Option Strict Off, deixa que você tente essas conversões (se der certo, que bom, senão…)
Option Strict On
Dim ValorReal As Double = 4.56
Dim ValorInteiro As Integer
ValorInteiro = ValorReal
A atribuição passa a ser inválida, porque você vai perder a parte fracionária da variável. Isso também impede atribuições de String para valores numéricos, pois também é um processo que implicaria em perda de informações. Simples, não é ?
O Visual Studio vai te avisar na hora que a atribuição acima causaria um erro. Você escolhe.
Ah, o default é a permissão das atribuições, ou seja, Option Strict por padrão vem como Off.
Manipulando Strings
Existem muitas funções relacionadas à classe System.String:
– System.String.Concat(args As Object) As String
Dim Nome = String.Concat(“Guanabara”,”.Info”) ‘Retorna Guanabara.Info
Concatena (junta) os valores passados como parâmetro.
– Contains(value As String) As Boolean
If (VariavelString.Contains(“Guanabara”) Then Console.WriteLine(“Contém Guanabara”)
Verifica se a variável possui a string value em seu interior. Retorna True ou False.
– Contains(value As String) As Boolean
If (VariavelString.Contains(“Guanabara”) Then Console.WriteLine(“Contém Guanabara”)
Verifica se a variável possui a string value em seu interior. Retorna True ou False.
– EndsWith(value As String) As Boolean
If (VariavelString.EndsWith(“#”) Then Console.WriteLine(“Pode ser que seja C#”)
Verifica se a varíavel possui a string value em seu interior, sendo que value deve ser o fim do conteúdo da variável.
– StartsWith(value As String) As Boolean
If (VariavelString.StartsWith(“Visual”) Then Console.WriteLine(“Pode ser que seja Visual Basic”)
Verifica se a varíavel possui a string value em seu interior, sendo que value deve ser o início do conteúdo da variável.
– Insert(index As Integer, value As String) As String
Dim NovaVariavel As String = VariavelString.Insert(4,”VB”)
Insere no índice especificado da varíavel a string value passada como parâmetro.
– System.String.Join(separator As String, value() As String) As String
Dim NovaVariavel = Join(“\”, ArrayValores)
Concatena em uma string os valores de um array de strings value, separando os elementos dos índices com o valor passado em separator.
– ToLower/ ToUpper() As String
Dim NovaVariavel = VariavelString.ToLower
Retorna uma string com todos os caracteres da variável transformados em minúsculos (Lower Case) ou todos transformados em maiúsculos (Upper Case).
– Trim() As String
Dim NovaVariavel = VariavelString.Trim
Retorna uma string onde os espaços em branco existentes no início e no fim do conteúdo da variável são removidos. Útil para desconsiderar strings cujo conteúdo seja somente composto por espaços.
– SubString(startIndex As Integer, length As Integer)
Dim NovaVariavel = VariavelString.SuBString(2, 3)
Retorna uma string cujo valor será o conteúdo da varíavel, a partir da posição startIndex, contando length caracteres.
Conversões de Tipos
Algumas vezes, vamos necessitar realizar conversões de um tipo de varíavel para outro tipo, explicitamente. Antigamente, no VB existiam funções como CStr para converter para strings, CInt para converter para Integer, e muitos outros. No Visual Basic.NET, pode ser feito usando métodos das próprias classes.
A conversão para o tipo String pode ser feita com o método ToString:
Dim MeuNumero As Double = 5.67
Console.WriteLine( MeuNumero.ToString() )
Quando a conversão desejada é feita para um tipo numérico, podemos usar os métodos Parse e TryParse das classes. O método Parse faz a conversão, e em caso de erro uma exception será disparada (em outras palavras, vai causar um erro). Se você usar a função TryParse, será feita uma tentativa de conversão, e em caso de erro o retorno será False.
– <classe>.Parse (s As String) As <classe>
Dim X As Byte = Byte.Parse(“3”)
Dim Y As Long = Long.Parse(“2424”)
ou
– <classe>.TryParse (s As String, ByRef result As <classe>) As Boolean
Byte.TryParse(“3”, X)
Long.TryParse(“2424”, Y)
Veja um exemplo de como seria essa conversão:
– Usando o Parse
Dim NumeroReal As Double
Dim NumeroInteiro As Integer = 7
NumeroReal = Double.Parse(NumeroInteiro.ToString())
– Usando o TryParse
Dim NumeroReal As Double
Dim NumeroInteiro As Integer = 7
If Double.TryParse(NumeroInteiro.ToString(), NumeroReal) = False Then
Console.WriteLine(“A conversão resultou em erro”)
End If
Seguindo esse modelo, é possível fazer conversões usando os demais tipos, como SByte, Decimal, Short, e etc.
Por hoje foi só isso. No próximo post, o assunto vai ser sobre uma classe que eu já mencionei várias vezes em posts anteriores: Exception. Um grande abraço e até a próxima.
Otima aula… Marcelo Parabéns e só tenho a agradecer por toda a ajuda que está dando ao Zoom seus posts são otimos..
Sempre unindo com as video aulas xD
Abração!
Muito boa !
parabéns!
Parabens Cara, muito bom.
mano,cada dia que passa vc supera mais heim…quem sabe um dia eu fique igual a vc.rsrrssrrs,naum imagina como suas aulas estão me ajudando. é isso ai cara ,continue assim e que Deus o abençoe. abraços de amigo claudemir