Primeiras aulas do curso VB.NET com Windows Forms Parte 6: Manipulando Strings, expressões regulares e a classe Object

VB.NET com Windows Forms Parte 6: Manipulando Strings, expressões regulares e a classe Object

Mais sobre strings - Introdução

Oi, pessoal, tudo bem? Meu nome é Victorino Vila e vamos aprender neste curso de vb.net a manipular strings. Vamos usar um exemplo prático do banco Bytebank. Vamos pegar as URLs do site e saber como conseguimos extrair as propriedades que estão dentro da url através de manipulações de string. Vamos ter contato neste treinamento com uma série de funções e métodos associados aos strings. Veremos como funciona o remove, o index of, o subString, entre outras funções e métodos associados à classe string.

Também vamos falar sobre expressões regulares. É uma forma de extrair informação de textos livres. Nosso objetivo é conseguir identificar o número de telefone dentro de um texto onde ele está, inclusive levando em consideração se é um telefone fixo, telefone celular, cuja lei de informação do número de telefone vai variar. Depois vamos falar sobre a classe mais básica do .net, que é a object. Veremos que todas as classes internas do framework derivam da classe object.

Vamos aprender como implementamos funções que estão originalmente declaradas na classe object com códigos próprios dentro das classes, através de funções override.

Depois, vamos criar uma aplicação usando formulários mdi onde posso adicionar uma url de um site, como o do Uol, eventualmente posso colocar o site do jornal O Globo, navegar pelas janelas de maneira horizontal, vertical, vamos aprender como fazer isso no desktop. E no caso das URLs que exigem determinada consulta, como por exemplo no site da Alura, que posso fazer uma busca em vb.net, e ao fazer a busca vejo a url naquele formato muito parecido com o do Bytebank e identificar o parâmetro que contém a url que estou executando nessa aplicação.

Vamos colocar em prática vários conhecimentos vistos nos cursos anteriores nessa aplicação. Espero que vocês gostem e sigam comigo na carreira de visual basic .net. Muito obrigado.

Mais sobre strings - Argumentos nas páginas da internet

Apesar do nosso curso ser de visual basic .net focado em Windows forms, vou dar um parênteses no nosso banco Bytebank e discutir uma coisa muito comum na internet, que são as URLs, que fazem a gente abrir uma página da intente, fazer uma busca, trazer algo para o nosso browser, e vou dar um link sobre o tema desse curso em cima dos exemplos de internet.

Vou abrir no meu Google uma sessão de browser e vou entrar no site do Uol, que é um site de notícias. Vou clicar no assunto mais popular, parte de política internacional. Por exemplo, secretário-assistente da justiça dos Estados Unidos deve deixar o governo. Foi a página que abri.

Vou copiar a url, e no notepad vou colar. Ela tem uma regra de montagem. Tem inicialmente o site do Uol, tem um barra mundo, que está mostrando que vou buscar notícias internacionais, depois tenho um ano e mês que tem cara de ser ano e mês que a notícia foi publicada no site, e depois um título bem grande com a extensão do arquivo.

Esse arquivo está publicado em algum lugar do servidor, eu vou buscar ele e vemos o caminho que a aplicação do Uol fez para achar a notícia. Mas às vezes tenho URLs mais complexas. Por exemplo, vou entrar no Booking.com. É um site para fazer reservas de hotéis, passagens aéreas, etc.

Vou escolher a cidade de Nova York, e vou escolher uma data de check-in e checkout, vou chegar dia 15 e voltar no dia 24 de outubro. Vou com um adulto e uma criança. Quando clicar em pesquisar ele vai buscar o hotel dentro das condições que coloquei. Ele também me escreveu uma url.

É bem grande, mas note que tem o https Booking, possui um arquivo html, acha uma interrogação, que significa que serão escritos parâmetros que são os parâmetros da consulta. Normalmente vem com um texto, um símbolo de igual e valor. Ele colocou label, que é o parâmetro, tem um texto enorme. Quando acha o & significa que temos outro parâmetro, que chama-se sd, com uma série de letras e números, sb igual a 1, src index, element sb, erro url, com um parâmetro maior.

O importante é o ss Nova York, Estados Unidos da América, tem a ver com minha pesquisa. Depois temos mais um parâmetro Nova York. Outra informação legal, check-in monday, é o dia do mês do check-in, que é dia 15. Depois o número do mês, 10, que é outubro, e o ano, e depois o dia do checkout, o mês, o ano, o número de adultos, o número de crianças, geralmente tem a idade. E assim por diante.

Note que ao pegar essa url e destrinchar ela consigo obter todos os parâmetros que estão sendo baixados para aquela página funcionar. Seja uma página estática de notícias, onde só vou buscar o texto, ou uma página dinâmica, onde vou passar parâmetros e ela vai me retornar um resultado baseado nesses parâmetros.

O endereço da página da internet não deixa de ser uma string, é uma variável texto que possui uma lei de informação. E se eu quiser buscar alguma coisa de dentro dessa string, basta obedecer a lei de informação. Por exemplo, no string do Booking, se eu quiser saber quantas crianças vão estar na reserva tenho que procurar até achar o & group children, e aí buscar o que tenho depois do igual, o número. E aí posso dizer que o número de crianças dentro da url é 1.

Ou seja, preciso manipular essa string e tirar partes dele para aí sim dar uma resposta. Já que vocês entenderam isso vamos voltar ao mundo do Bytebank. Ele também tem um site, que é https:://www.bytebank.com.br. Esse é o site do banco Bytebank. E lá no site tem uma aplicação de câmbio onde o cliente pode comprar ou vender dólar. Existe lá um /cambio, que é a página, a aplicação que vai calcular meu câmbio.

Vamos supor que meu cliente queira converter 1500 reais para dólar. Ele quer comprar e pagar 1500 reais. Para obter isso eu teria que ter uma função, teria que passar como parâmetro calcula câmbio, teria que passar para essa função como parâmetro a moeda de origem, a moeda destino, e o valor.

Claro que posso comprar euros, ienes, a conversão pode ser de qualquer moeda para qualquer moeda. E aí nesse caso aqui minha moeda origem é o real, e a moeda destino é o dólar. Teríamos o valor 1500. Se eu tiver essas três variáveis no vb.net sendo que essa vai ser string, a segunda também e a terceira integer. Se eu rodo a função consigo fazer o cálculo do câmbio.

Só que isso vai vir da minha url, do meu aplicativo. Ele vai ter uma interrogação, porque como mostrei ela diz que daqui para a frente vou colocar parâmetros. Vou ter uma moeda origem que vai ser dólar, depois o & porque vai trocar de parâmetro, moeda destino real, outro & e o indicador valor 1500.

Essa seria minha url. Imagine que preciso capturar a url, capturar o valor da variável moeda origem, o valor da variável moeda destino, o valor da variável valor, e aí jogar numa variável e aplicar a função, método, evento de uma classe que calcula o campo. Isso é uma string, então vou ter que ter um dim url as string igual esse cara todo, vou ter que fazer alguma coisa para pegar a string e capturar o valor de cada parâmetro que a url está passando e depois executar a função.

A manipulação de string é um assunto bem complexo, você tem diversos instrumentos para manipular as strings, e esse vai ser parte do tema deste treinamento que vocês estão assistindo. Espero que essa introdução tenha colocado vocês um pouco no problema que temos que resolver do banco Bytebank.

Mais sobre strings - Método Substring()

Entendemos o problema que temos que resolver, vamos partir para o visual studio e trabalhar com a manipulação desses strings. Vou abrir o visual studio e vou criar um novo projeto. Vou continuar com o Bytebank sistema, só que o nome da solução vai ser Bytebank e vou criar no diretório onde estou criando as aplicações.

Vou fazer o que sempre faço quando crio um formulário novo, primeiro renomeio ele, depois vou na caixa de ferramentas e adiciono um botão, e adiciono um label. Coloco o label, o botão, e o nome do label vai ser lbl principal e do botão btn principal.

Vou no código fonte, adiciono o método novo e coloco me.text igual formulário principal lbl principal text formulário principal e no botão clique aqui. E claro esse formulário vou colocar no start position center screen. Salvo, rodo, tenho o formulário pronto.

Vamos começar a trabalhar agora em simular situações parecidas com as que mostrei da url com parâmetros e com string mais complexa para buscar as informações. Para ser mais didático, vou criar uma url e vou chamar de principal & parâmetros. Aqui é a parte principal da url, tenho aqui a interrogação, porque é ela que divide o que seria principal dos parâmetros, e quero obter dessa string somente os parâmetros, somente o texto.

Seria interessante ter algum tipo de método ou função que buscasse a partir de uma posição do string o que tiver dali até o final dele. Vou escrever um comentário e falar que internamente cada letra do string tem uma posição que começa com valor 0. 0 seria para a letra p, 1 para r, 2 para i, 3 para n, e assim por diante.

Temos a interrogação na posição 9. Se eu pudesse dizer que quero buscar da posição 9 até o final que sobrou do string? Existe uma função que faz isso. Se eu pegar url subString, abro o parênteses, tenho a posição do string que quero buscar, que é 9, e essa função retorna uma string. Significa que preciso criar outra variável do tipo string, por exemplo, principal, que vai receber esse valor. A função puramente não vai tirar do string, tenho que jogar para outra variável, porque a url, a variável string é imutável, a não ser que estivesse igualando a ela mesma o valor do resultado da função.

Por exemplo, isso aqui. Aí funcionaria. Vou até deixar assim, colocar um message box onde vou mostrar a url antes de aplicar a função, e a url depois de aplicar a função. Principal, interrogação, parâmetros, cliquei, interrogação, parâmetros. Mas na verdade a função de subString é inclusive, ou seja, se coloquei o número 9 ele também está incluso no resultado. Se quero não obter a interrogação basta colocar número 10. Ele vai buscar até a letra e, como é inclusivo vai ser incluído na função, para a frente.

Vou dar um salvar, clicar aqui e pronto, parâmetros sem interrogação na frente. Posso se quiser, e fiz isso várias vezes nesse curso nas outras aulas, concatenar mais elementos à variável e meu subString vai estar sempre buscando da posição que coloquei para o final. Por exemplo, se eu disser sufixo, com mais e igual antes, estou concatenando após parâmetros a palavra sufixo. E isso na verdade, como a variável url é imutável, mas quando atribuo a ela mesma, o que ele está fazendo por trás dos panos é criar uma variável temporária que recebe url, depois pega a temporária e concatena a url com a palavra sufixo, e aí depois ele joga de novo para o valor da variável url o valor de temp.

Esse comando internamente está fazendo isso, da mesma maneira que esse comando que está aqui embaixo está jogando o resultado da subString e atribuindo de volta o valor de temp de novo para url. É o que está fazendo em cima. Vou até deixar o comando embaixo para mostrar o que por detrás dos panos o vb.net está fazendo, e aqui a mesma coisa.

E aí não importa, ele vai pegar sempre da posição 10 até o final, o string original terminava aqui. Mas depois quando concatenei com a palavra sufixo ficou maior. Mas como estou pegando do 10 para a frente vou pegar sempre o que tiver até acabar o string.

Vou rodar e mostrar. Está lá o principal, interrogação, parâmetro sufixo, e só sobrou parâmetro sufixo sem interrogação agora porque estou pegando da posição 10. Mas tudo bem, entendi. Só que de antemão sei onde está a interrogação. Foi fácil, coloquei direto.

Mas eu poderia ter alguma coisa que me dissesse onde está a interrogação, porque não sei. Se eu tivesse a palavra principal 2222, por exemplo, e rodasse o método, ele já me retornaria 2222, porque ele pegou da posição 10. A partir do momento em que eu inserir mais coisa no string que está antes da interrogação, esse 10 não é mais 10, pego do 13, do 14. Seria interessante que não precisasse fixar isso, que pudesse descobrir em que posição o separador está para pegar o cara.

A gente ainda pode usar coisas mais complexas para manipular os strings. É o que vamos ver mais à frente no treinamento.

Sobre o curso VB.NET com Windows Forms Parte 6: Manipulando Strings, expressões regulares e a classe Object

O curso VB.NET com Windows Forms Parte 6: Manipulando Strings, expressões regulares e a classe Object possui 325 minutos de vídeos, em um total de 73 atividades. Gostou? Conheça nossos outros cursos de .NET em Programação, ou leia nossos artigos de Programação.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda .NET acessando integralmente esse e outros cursos, comece hoje!

Plus

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$85
à vista R$1.020
Matricule-se

Pro

  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$120
à vista R$1.440
Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas