TOC

This article has been localized into Portuguese by the community.

Tipos de dados:

O tipo Char

O tipo de dados System.Char é usado para conter um único caractere unicode. C # tem um apelido para ele, chamado char , que você pode usar ao declarar suas variáveis char:

char ch;

E, claro, você pode imediatamente atribuir um valor a ele, se quiser. Em C #, um char é cercado por um conjunto de aspas simples:

char ch = 'H';

Como uma string (que discutiremos no próximo capítulo) é basicamente apenas um intervalo de caracteres, o .NET na verdade usa uma lista de caracteres para representar uma string. Isso também significa que você pode extrair um único caractere de uma string ou iterar em uma string e obter cada caractere como um tipo de dados char:

string helloWorld = "Hello, world!";
foreach(char c in helloWorld)
{
    Console.WriteLine(c);
}

Sob o capacete, um char é um valor numérico, onde cada caractere tem um número específico no "alfabeto" Unicode. Até o momento, há mais de 130.000 caracteres Unicode , que vão do alfabeto latino/ocidental a scripts históricos. Portanto, em C #, é muito fácil ir de um tipo de dados char para sua representação numérica, conforme ilustrado por esta versão ligeiramente estendida do exemplo anterior:

string helloWorld = "Hello, world!";
foreach(char c in helloWorld)
{
    Console.WriteLine(c + ": " + (int)c);
}

Ele irá simplesmente imprimir o caractere, acompanhado de sua representação numérica, somente fazendo uma conversão explícita (casting) do caractere para um inteiro. Isso também significa que você pode facilmente fazer o contrário: De um número para um caractere. Mas porque você faria isso? Bem, há muitos caracteres que não estão diretamente disponíveis em muitos teclados, ex.: o caractere de copyright (©). Você pode usar a Tabela de definição Unicode, achar a representação numérica do caractere que você precisa, e torná-lo em um caractere:

char ch = (char)169;
Console.WriteLine(ch);

Métodos auxiliares char

A classe Char tem alguns métodos auxiliares muito interessantes, que podem ajudá-lo a determinar o tipo de caractere com o qual você está lidando atualmente. Isto é muito útil em muitas situações, por ex. ao validar a entrada. Aqui está um exemplo:

Console.WriteLine("Enter a single number:");
char ch = Console.ReadKey(true).KeyChar;
if (Char.IsDigit(ch))
    Console.WriteLine("Thank you!");
else
    Console.WriteLine("Wrong - please try again!");

Eu simplesmente leio a primeira tecla pressionada pelo usuário e, em seguida, uso o método Char.IsDigit() para ver se é um número ou não. E existem muitos métodos como este, para verificar o tipo do personagem. Podemos usar isso para fazer uma validação de cadeia muito simples:

Console.WriteLine("Write your name:");
string name = Console.ReadLine();  
bool isValid = true;  
for(int i = 0; i < name.Length; i++)  
{  
    char ch = name[i];  
    if((i == 0) && ((!Char.IsLetter(ch)) || (!Char.IsUpper(ch))))  
    {  
Console.WriteLine("The first character has to be an uppercase letter!");  
isValid = false;  
break;  
    }  
    if(Char.IsDigit(ch))  
    {  
Console.WriteLine("No digits allowed!");  
isValid = false;  
break;  
    }  
}  
if (isValid)  
    Console.WriteLine("Hello, " + name);

Nós simplesmente passamos por todos os caracteres do nome digitado pelo usuário, usando vários métodos Is* para verificar se a entrada coincide com nossos simples requisitos. E há uma ampla gama de métodos úteis, assim como o Char.IsLetterOrDigit(). Para uma lista completa, leia a documentação.

Resumo

Um tipo de dados char (alias para System.Char) é usado para representar um único caractere Unicode. Para representar mais de um char, você usa uma string, que é basicamente apenas uma lista de caracteres. No próximo artigo, discutiremos strings.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!