Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

Soluções rápidas no trabalho com char e string (VB e C#(csharp)) – Parte II

Esse tutorial foi desenvolvido com objetivo de apresentar algumas das maneiras que podem ser utilizadas para se trabalhar com strings.

Soluções rápidas no trabalho com char e string (VB e C#) – Parte II

 

4. Criar uma String Consistindo de um Caractere Repetido

 

Problema:

Você necessita rapidamente criar uma string que consiste de um simples caractere repetido em vários tempos (ex.: "------------").

 

Solução:

 

' vb

Dim hifen As New String("-"c, 50)

Response.Write(hifen)

 

// c#

String hifen = new String('-', 50);

Response.Write(hifen);

 

Saída:

--------------------------------------------------

 

5. Modificar a Caixa de todos os Caracteres em uma String

 

Problema:

Você deseja em caixa alta ou baixa todas às letras em uma string.

 

Solução:

Os métodos ToUpper() e ToLower() (c# e vb) fazem facilmente a conversão de strings para caixa alta ou baixa, ou ainda mescla esta conversão (vb). Podemos também utilizar, como padrão no VB, os métodos UCase() e LCase(). Para mesclar as caixas utilize a função StrConv() do VB.

 

' vb

Dim Texto, CaixaMista, CaixaAlta, CaixaBaixa As String

Texto = "Visual Studio"

 

CaixaAlta = Texto.ToUpper()

' ToUpper() retorna "VISUAL STUDIO"

 

CaixaBaixa = CaixaAlta.ToLower()

' ToLower() retorna "visual studio"

 

CaixaAlta = UCase(Texto)

' UCase() retorna "VISUAL STUDIO"

 

CaixaBaixa = LCase(CaixaAlta)

' LCase() retorna "visual studio"

 

CaixaMista = StrConv(CaixaBaixa, VbStrConv.ProperCase)

' StrConv(str, ProperCase) retorna "Visual Studio"

 

// c#

String MixedCase, UpperCase, LowerCase;

MixedCase = "Visual Studio";

 

UpperCase = MixedCase.ToUpper();

// UpperCase é agora "VISUAL STUDIO"

 

LowerCase = MixedCase.ToLower();

// LowerCase é agora "visual studio"

 

 

6. Desempenhar Case-Insensitive em Comparações de String

 

Problema:

Você necessita comparar duas strings para ver se elas associam até mesmo o tipo de caixa (alta ou baixa) (case-sensitive).

 

Solução:

Use a versão de sobrecarga do método estático String.Compare que aceita um parâmetro Boolean para ignoreCase.

 

Retorna 0 (zero) se as strings são iguais, -1 se a primeira string for menor que a segunda (StringA < StringB), ou 1 se a primeira string for maior que a segunda (StringA > StringB). Opcionalmente, o método também aceita um parâmetro booleano chamado ignoreCase que desempenha comparações case-sensitive.

 

' vb

If String.Compare(StringA, StringB, True) = 0 Then

      ' Strings associadas.

End If

 

// c#

if (String.Compare(StringA, StringB, True) = 0)

{

// Strings associadas.

}

 

Ou ainda:

 

' vb

If StringA.ToUpper() = StringB.ToUpper() Then

      ' Strings associadas.

End If

 

// c#

if (StringA.ToUpper() = StringB.ToUpper())

{

      // Strings associadas.

}

 

 

7. Interagir com Todos os Caracteres em uma String

 

Problema:

Você deseja examinar cada caractere em uma string individualmente.

 

Solução:

 

' vb

Dim MyString As String = "Iteragindo com caracteres"

Dim i As Integer

For i = 0 To MyString.Length - 1

      Response.Write("Caractere: " & MyString.Chars(i) & "<br />")

Next

 

// c#

String MyString = "Iteragindo com caracteres";

Char[] caractere = MyString.ToCharArray();

for (int i = 0; i < (MyString.Length - 1); i++)

{

Response.Write("Caractere: " + caractere[i] + "<br />");

}

 

Ou ainda:

 

' vb

Dim MyString As String = "Iteragindo com caracteres"

Dim Letter As Char

For Each Letter In MyString

      Response.Write("Caractere: " & Letter & "<br />")

Next

 

// c#

String MyString = "Iteragindo com caracteres";

foreach (Char Letter in MyString)

{

Response.Write("Caractere: " + Letter + "<br />");

}

 

Saída:

Caractere: I

Caractere: t

Caractere: e

Caractere: r

Caractere: a

Caractere: g

Caractere: i

Caractere: n

Caractere: d

Caractere: o

Caractere:

Caractere: c

Caractere: o

Caractere: m

Caractere:

Caractere: c

Caractere: a

Caractere: r

Caractere: a

Caractere: c

Caractere: t

Caractere: e

Caractere: r

Caractere: e

Caractere: s

 

Você pode verificar também o tipo do caractere, a saber:

 

IsDigit: número de 0–9.

IsNumber: número hexadecimal de 0–F.

IsLetter: letra A–Z.

IsLetterOrDigit: caracteres alfa-numéricos de A–Z ou 0–9.

IsLower e IsUpper: depende do caso do caractere.

IsPunctuation: caractere que é classificado como uma pontuação Unicode.

IsSymbol: caractere que é classificado como um símbolo Unicode.

IsWhiteSpace: caractere classificado como um espaço-branco em Unicode (tipicamente um espaço, tab, quebra de linha, etc.).

 

Sendo assim:

 

' vb

Dim MyString As String = "Iteragindo com caracteres"

Dim Letter As Char

For Each Letter In MyString

      Response.Write(Letter)

      If (Char.IsWhiteSpace(Letter)) Then Response.Write("<br />")

Next

 

// c#

String MyString = "Iteragindo com caracteres";

foreach(Char Letter in MyString)

{

Response.Write(Letter);

if (Char.IsWhiteSpace(Letter)) Response.Write("<br />");

}

 

Saída:

Iteragindo

com

caracteres

 

 

8. Analisar uma Palavra dentro de uma Frase

 

Problema:

Você deseja analizar uma string e recuperar uma lista de todas as palavras que contém.

 

Solução:

Usar o método Split que aceita um delimitador de caracteres. O método quebra a string cada vez que esse delimitador for encontrado.

 

' vb

Dim sentenca As String = "Sobremesa preparada com banana ou outra fruta."

Dim separador() As Char = {" "}

Dim palavras() As String

 

' Quebra a sentenca.

palavras = sentenca.Split(separador)

 

' Mostra a sentenca dividida.

Dim palavra As String

For Each palavra In palavras

      Response.Write("Palavra: " & palavra & "<br />")

Next

 

// c#

String sentenca= "Sobremesa preparada com banana ou outra fruta.";

Char[] separador = new Char['\0'];

String[] palavras;

 

// Quebra a sentenca.

palavras = sentenca.Split(separador);

 

// Mostra a sentenca dividida.

foreach (String palavra in palavras)

{

Response.Write("Palavra: " + palavra + "<br />");

}

 

Saída:

Palavra: Sobremesa

Palavra: preparada

Palavra: com

Palavra: banana

Palavra: ou

Palavra: outra

Palavra: fruta.

 

Ocorre um problema quando você tenta quebrar a string com vários tipos de pontuações (semelhantes como (.) ponto, (,) vírgula, ...) que são usualmente seguidos de espaços em branco. O método Split retorna, neste caso, uma string vazia. Dessa forma, você pode implementar um método que retira os espaços retornados:

 

' vb

Private Function OtimizarQuebra(ByVal stringToSplit As String, _

      ByVal delimitador() As Char) As String()

 

' Quebra uma lista de palavras dentro do array.

Dim Palavras() As String

Palavras = stringToSplit.Split(delimitador)

 

' Adiciona cada palavra valida no ArrayList.

Dim PalavrasFiltradas As New ArrayList()

Dim Palavra As String

For Each Palavra In Palavras

      ' A string não pode ser vazia, neste caso um espaço.

      If Palavra <> String.Empty Then

            PalavrasFiltradas.Add(Palavra)

      End If

Next

 

' Converte o ArrayList para um array de String.

Return CType(PalavrasFiltradas.ToArray(GetType(String)), String())

 

End Function

 

// c#

private String[] OtimizarQuebra(String stringToSplit , Char[] delimitador)

{

 

// Quebra uma lista de palavras dentro do array.

String[] Palavras;

Palavras = stringToSplit.Split(delimitador);

 

// Adiciona cada palavra valida no ArrayList.

ArrayList PalavrasFiltradas = new ArrayList();

foreach (String Palavra in Palavras)

{

// A string não pode ser vazia, neste caso um espaço.

if (Palavra != "")

{

PalavrasFiltradas.Add(Palavra);

}

}

 

// Converte o ArrayList para um array de String.

return (String[])PalavrasFiltradas.ToArray(typeof(String));

 

}

 

O problema está resolvido:

 

' vb

Dim sentenca As String = "Sobremesa preparada com banana, maçã," & _

            " abacate, melancia ou outra fruta."

 

Dim separador() As Char = {",", " "}

Dim palavras() As String

 

' Quebra a sentenca.

palavras = OtimizarQuebra(sentenca, separador)

 

' Mostra a sentenca dividida.

Dim palavra As String

For Each palavra In palavras

      Response.Write("Palavra: " & palavra & "<br />")

Next

 

// c#

String sentenca = "Sobremesa preparada com banana, maçã," +

" abacate, melancia ou outra fruta.";

 

Char[] separador = { ' ',',' };

String[] palavras;

 

// Quebra a sentenca.

palavras = OtimizarQuebra(sentenca, separador);

 

// Mostra a sentenca dividida.

foreach (String palavra in palavras)

{

Response.Write("Palavra: " + palavra + "<br />");

}

 

Saída:

Palavra: Sobremesa

Palavra: preparada

Palavra: com

Palavra: banana

Palavra: maçã

Palavra: abacate

Palavra: melancia

Palavra: ou

Palavra: outra

Palavra: fruta.





    2 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Renato Nascente Junior
Kallebe obrigado pela sequencia de dicas muito bom espero que continue com esse trablho muito legal as dicas valeu e obrigado


em 20/8/2007 10:19 - Responder

 

Cermantoani
Achei muito interessante,porquê não é algo que me é visto como difícil,porquanto faço curso técnico que aborda isso,mas de uma forma simples tratando a parte assuntos,para não embolarem o meio de campo,gostei,parabéns!!!


em 24/10/2007 09:21 - Responder

 



[Este post ainda não foi associado a uma sequência]
Autor
Kallebe Lins

CONSULTOR .NET | ARQUITETO DE SOFTWARE | COORDENADOR DE PROJETOS .NET | Técnico em Sistemas Integrados de Gestão Empresarial | MCP Foundation | MCTS Web | MCTS Distributed | MCTS SQL SERVER 2005 | MCTS Windows Based | Microsoft Team Foundation Server 2010 | Microsoft Sharepoint 2010


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
3   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível para assinantes da .net Magazine ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03