TOC

This article has been localized into Czech by the community.

Datové typy:

Znak (char)

Datový typ System.Char se používá k uchování jednoho unicode znaku. C# má pro něj alias, který se nazývá char, který můžete použít při deklarování vašich proměnných char:

char ch;

A samozřejmě mu můžete okamžitě přiřadit hodnotu, pokud chcete. V C# je char obklopen sadou jednoduchých uvozovek:

char ch = 'H';

Vzhledem k tomu, že řetězec (který probereme v další kapitole) je v podstatě jen řada znaků, .NET ve skutečnosti používá seznam charů k reprezentaci řetězce. To také znamená, že můžete z řetězce vyjmout jednotlivý char nebo iterovat přes řetězec a získat každý znak jako datový typ char:

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

Pod povrchem je char numerická hodnota, kde každý znak má specifické číslo v Unicode "abecedě". V době psaní existuje více než 130 000 různých Unicode znaků, sahajících od latinského/západního písma po historické skripty. Takže v C# můžete velmi snadno přejít od datového typu char k jeho numerické reprezentaci, jak je ilustrováno v tomto mírně rozšířeném příkladu předchozího příkladu:

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

Jednoduše vypíše znak následovaný jeho numerickou reprezentací, jednoduše přetypováním char na integer. To také znamená, že můžete stejně snadno jít opačným směrem: Z čísla na znak. Ale proč byste to dělali? No, existuje spousta znaků, které nejsou přímo dostupné na většině klávesnic, například znak autorských práv (©). Místo toho můžete použít tabulku vzhledu Unicode, najít numerickou verzi znaku, který potřebujete, a pak ho jednoduše převést na char:

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

Char helper (pomocné) metody

Třída Char má několik opravdu skvělých pomocných metod, které vám mohou pomoci určit typ znaku, se kterým právě pracujete. To je velmi užitečné v mnoha situacích, například při validaci vstupu. Zde je příklad:

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!");

Jednoduše načtu první klávesu stisknutou uživatelem a pak použiju metodu Char.IsDigit(), abych zjistil, zda jde o číslo, nebo ne. A existuje mnoho metod jako tato, které kontrolují typ znaku. Můžeme to použít k velmi jednoduché validaci řetězců:

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);

Jednoduše projdeme jméno zadané uživatelem a použijeme různé verze metod Is* k ověření, že vstup odpovídá našim jednoduchým požadavkům. A existuje několik dalších užitečných metod, jako je metoda Char.IsLetterOrDigit(). Pro úplný seznam se podívejte na dokumentaci.

Shrnutí

Datový typ char (alias pro System.Char) se používá k reprezentaci jednoho Unicode znaku. K reprezentaci více než jednoho znaku používáte řetězec, který je v podstatě jen seznam znaků char. V dalším článku se budeme věnovat řetězcům.


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!