C#
- Trabalhando com Strings (revisão)
![]() |
Neste artigo irei mostrar novamente como podemos realizar operações básicas com Strings usando os recursos da linguagem C#. |
Irei tratar alguns tópicos mais comuns onde vou dar uma abordagem mais prática dando uma breve explanação teórica quando necessário.
Em todos os exemplos do artigo eu estou usando o Visual C# 2010 Express Edition em um projeto do tipo Windows Forms Application com o nome TratandoStrings.
1- Convertendo texto para o formato binário e vice-versa
O namespace System.Text define um número de classes que ajudam a trabalhar com dados textuais. Para converter de/e para bytes, podemos usar a classe Encoding.
Embora seja possível criar um esquema de codificação de texto próprio, normalmente você vai usar um dos membros estáticos pré-criados da classe Enconding, que representam os mais comuns padrões de codificação, como ASCII, Unicode, UTF-8 e assim por diante.
No formulário form1.cs do projeto inclua 4 caixas de Texto (Multiline=True) e 4 botões de comando conforme o leiaute abaixo:
![]() |
No início do
formulário temos que declarar os namespaces System.Text A seguir vamos declarar a variáveis : byte[] bytes1,bytes2,bytes3; No evento Click do botão de comando Converter para Bytes inclua o código abaixo:
|
No código estamos usando a classe Encoding e o tipo de codificação (ASCII, Unicode, UTF8) e o método GetBytes passando o texto que desejamos converter para bytes.
O resultado obtido é exibido abaixo:
![]() |
Para converter de bytes
para Texto podemos usar o método GetString da classe
Encoding; O código usado em cada evento Click dos botões para converter para texto é o seguinte: - ASCII string
resultado1 = Encoding.ASCII.GetString(bytes1); - Unicode string
resultado2 = Encoding.Unicode.GetString(bytes2); - UTF8 string
resultado3 = Encoding.UTF8.GetString(bytes3); |
Lembrando que na plataforma .NET todas as strings são Unicode e você deve se preocupar com a representação dos bytes quando estiver escrevendo strings para arquivos, redes, banco de dados e localizações externas.
2- Detectando strings vazias
Quando estiver tratando com strings você tem que estar atento aos possíveis 4 estados de uma string:
Como podemos tratar isso ?
As condições 1 e 2 podem ser tratadas usando o método IsNullOrEmpty() da classe string.
Ex: String.IsNullOrEmpty(resultado1);
IsNullOrEmpty Indica se a String especificada é uma referência nula (Nothing no Visual Basic) ou uma string Empty (vazia).
A partir da versão 4.0 a plataforma .NET introduziu o método IsNullOrWhiteSpace(), assim poderíamos tratar a condição 1 e 3.
Ex: String.IsNullOrWhiteSpace(resultado1);
IsNullOrWhiteSpace Indica se uma seqüência especificada é Nada, vazia, ou consiste apenas de caracteres espaço em branco.(os whitespaces são caracteres que não são exibidos graficamente, como por exemplo, a tabulação, o espaço em branco e a quebra de linha)
Então podemos ter:
1- Verificar se a string contém conteúdo :Ex: bool StringTemConteudo = !String.IsNullOrWhiteSpace(resultado1);
2- Verificar se a string não contém conteúdo: Ex: bool StringNaoTemConteudo = String.IsNullOrWhiteSpace(resultado1);
3- Dividir um String
Dividir uma string em um array de strings, com base em delimitadores (caracteres ou strings que especificam onde as divisões deve ser feitas).
A classe String possui o método Split que podemos usar para dividir uma string em um array.
O método Split identifica substrings que são delimitados por um ou mais caracteres especificados em um array e então coloca as subtrings em um array de strings.
Portanto o método retorna um array de strings contendo substrings delimitadas por um caractere definido.
No menu File-> Add -> New Project inclua um projeto do tipo Windows Application com o nome DividindoStrings conforme o leiaute a seguir:
![]() |
No evento Click do botão de comando inclua o código:
private void btnDividir_Click(object sender, EventArgs e) { string original = txtTexto.Text; char[] delimitadores = new char[]{',','-',' ','.'}; string[] strings = original.Split(delimitadores); foreach (string s in strings) { txtResultado.Text +="\t" + s; } } |
Executando o projeto teremos:
![]() |
Vejamos outro exemplo usando o método Split , desta vez vamos exibir o resultado em um controle ListBox para podermos visualizarmos melhor a separação dos caracteres. Vamos também definir um único caractere como delimitador e usar o laço for.
Inclua um novo botão de comando no formulário com o nome - btnSplit e texto - Usando Split. Inclua também um controle ListBox com o nome lstResultado conforme o leiaute abaixo:
![]() |
Agora inclua no evento Click do botão de comando o código abaixo:
private void btnSplit_Click(object sender, EventArgs e) { string[] strArray = null; char[] splitchar = { ' ' }; strArray = txtTexto.Text.Split(splitchar); for (int i = 0; i <= strArray.Length - 1; i++) { lstResultado.Items.Add("\t" + strArray[i]); } } |
![]() |
Executando o projeto temos ao lado a figura exibindo o resultado.
Pegue a solução completa
aqui:
TratandoStrings.zip
1Ts 2:5
Pois, nunca usamos de palavras lisonjeiras, como sabeis, nem agimos com intuitos gananciosos. Deus é testemunha,1Ts 2:6
nem buscamos glória de homens, quer de vós, quer de outros, embora pudéssemos, como apóstolos de Cristo, ser-vos pesados;1Ts 2:7
antes nos apresentamos brandos entre vós, qual ama que acaricia seus próprios filhos.Referências: