Camiseta Twitter !! Garanta já a sua!

[VB] Parte VII – Strings e conversões de tipos

Categorias: Aprenda, Aulas, Colunas, Geral, VB

12 comente

Fala rapaziada (como diz o pessoal do MXMasters). Mais um post sobre Visual Basic.NET.

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.

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.

- 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.

- Replace(oldChar As Char, NewChar) As String
Console.WriteLine(Variavel.Replace(“,”,”.”))

Substitui todas as ocorrências de oldChar por NewChar na string.

- Remove(startIndex As Integer, count As Integer) As String
Dim NovaVariavel As String = VariavelString.Insert(4,2)

Remove a partir da posição startIndex um número count de caracteres da string.

- 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 isso. No próximo post, o assunto vai ser sobre uma classe que eu já mencionei várias vezes: Exception. Até lá.

Related Posts with Thumbnails
  • Guilherme (São Paulo- 14 Anos)

    Fala Marcelão!
    Palmas, palmas, cara essa sua aula da um show cara, ja peguei um milhão de apostilas de vb, mas o seu curso, cara, bate todas juntas.

    Este é o melhor curso do melhor site de tecnologia do brasil.

    Parbéns Marcelão, e faça o outro post antes que o lhc vire um buraco begro, ou não.

    [Responder]

    setembro 19, 2008 @ 11:36 am
  • # Guilherme

    O que seria um buraco begro ?? 8O

    [Responder]

    setembro 19, 2008 @ 11:48 am
  • Kaleb Costa, 16 anos - Manaus AM

    Grande Marcelo, boa aula… Pra quem ta meio fechado com o tempo hein? Parabéns, funções Strings em toda linguagem merecem pelo menos uma aula própria ;D

    [Responder]

    setembro 19, 2008 @ 12:28 pm
  • Jack Jeronymo SIlva Junior

    Opa, vcs estão de parabens, muito bom o site…mas estou com um problema….quando vo executar o programa ele abre o prompt e fecha muito rápido…o primeiro programa funcionou normal, mas os outros não executam
    o que esta acontecendo
    vlw!!
    estou votando em vcs no premio podcast
    vamo la q vcs conseguem!!! :D

    [Responder]

    setembro 19, 2008 @ 2:04 pm
  • # Jack Jeronymo Silva Junior

    Tente colocar, no fim do seu programa, a linha de código

    Console.ReadLine()

    Assim, ele vai esperar que você pressione a tecla ENTER para continuar, e não vai fechar a tela do prompt rápido, beleza ? ;)

    [Responder]

    setembro 19, 2008 @ 2:09 pm
  • Parabens pela aula, ainda não estou estudando vb mais pretendo estudar então já sei onde procurar. ;)

    [Responder]

    setembro 19, 2008 @ 2:40 pm
  • Paulo Henrique

    Cara, muito bom o post!!!

    Eu nem sabia de todas esas funções do tipo string. E tem umas que eu só conhecia do php mas nem imaginei que tivesse no vb.net.

    Excelente post!!

    Parabéns!!!!!! :D

    [Responder]

    setembro 19, 2008 @ 3:06 pm
  • Graaaaaande Marcelo!

    Mais uma vez vc arrebentou. Sem dúvida alguma o conteúdo de suas aulas está em um nível muito superior ao das apostilas que encontramos na net.

    Parabéns!

    [Responder]

    setembro 19, 2008 @ 3:14 pm
  • Guilherme (São Paulo- 14 Anos)

    #Marcelo

    no skype, no msn e até aqui você é muuuuuito chato :P :P .

    [Responder]

    setembro 19, 2008 @ 6:46 pm
  • # Guilherme (São Paulo- 14 Anos)
    Pow fala assim dele não… Ele é chato mais é meu amigo^^!

    Brincadeira Marcelo, tu sabe que tu é maneiríssimo rapá!

    [Responder]

    setembro 19, 2008 @ 8:58 pm
  • Parabéns Marcelo!
    Por essa ótima aula, e pelo sucesso da série inteira!

    Só abraços!(porque o sucesso já é seu!) :mrgreen:

    [Responder]

    setembro 22, 2008 @ 1:19 pm
  • Diego
    21 - Goiania

    Na verdade, o padrão de arrendodamento em outras linguagens é este mesmo que você citou, porém no VB, ele arredonda para o número par mais próximo, exemplo:
    4.6 seria arredondado para 4, e 5.2 também seria arredondado para 4, pelo menos foi o que a professora me explicou na faculdade semana passada.

    [Responder]

    julho 3, 2010 @ 9:42 pm

Comentar