TOC

This article has been localized into German by the community.

Datenarten:

Zeichen (char)

Der System.Char-Datentyp wird verwendet, um ein einzelnes Unicode-Zeichen zu enthalten. C# hat dafür einen Alias namens char, den Sie verwenden können, wenn Sie Ihre char-Variablen deklarieren:

char ch;

Und natürlich können Sie sofort einen Wert zuweisen, wenn Sie möchten. In C# ist ein Char von einer Reihe einfacher Anführungszeichen umgeben:

char ch = 'H';

Da eine Zeichenfolge (auf die wir im nächsten Kapitel eingehen) im Grunde nur eine Reihe von Zeichen ist, verwendet .NET tatsächlich eine Liste von Zeichen, um eine Zeichenfolge darzustellen. Das bedeutet auch, dass Sie ein einzelnes Zeichen aus einer Zeichenfolge abrufen oder über eine Zeichenfolge iterieren und jedes Zeichen als char-Datentyp abrufen können:

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

Unter der Haube ist ein Zeichen ein numerischer Wert, wobei jedes Zeichen eine bestimmte Zahl im Unicode- "Alphabet" hat. Zum Schreiben gibt es mehr als 130.000 verschiedene Unicode-Zeichen, die vom lateinischen / westlichen Alphabet bis zu historischen Skripten reichen. In C # können Sie also ganz einfach von einem char-Datentyp in seine numerische Darstellung wechseln, wie in dieser leicht erweiterten Version des vorherigen Beispiels dargestellt:

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

Es gibt einfach das Zeichen aus, gefolgt von der numerischen Darstellung, indem einfach das Zeichen in eine ganze Zahl umgewandelt wird. Dies bedeutet auch, dass Sie genauso einfach umgekehrt gehen können: Von einer Zahl zu einem Charakter. Aber warum würden Sie das tun? Nun, es gibt viele Zeichen, die auf den meisten Tastaturen nicht direkt verfügbar sind, z.B. das Copyright (©) Zeichen. Sie können stattdessen eine Unicode-Nachschlagetabelle verwenden, die numerische Version des benötigten Zeichens finden und sie dann in ein Zeichen umwandeln :

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

Char Hilfsmethoden

Die Char-Klasse hat einige wirklich coole Hilfsmethoden, die Ihnen helfen können, den Typ von Char zu bestimmen, mit dem Sie gerade zu tun haben. Dies ist in vielen Situationen sehr nützlich, z.B.: bei der Validierung der Eingabe. Hier ist ein Beispiel:

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

Ich lese einfach die erste vom Benutzer gedrückte Taste und benutze dann die Char.IsDigit () - Methode, um zu sehen, ob es eine Zahl ist oder nicht. Und es gibt viele Methoden wie diese, um den Typ des Charakters zu überprüfen. Wir können damit eine sehr einfache String-Validierung durchführen:

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

Wir durchlaufen einfach den vom Benutzer eingegebenen Namen und verwenden verschiedene Versionen der Is* -Methoden, um zu überprüfen, ob die Eingabe unseren einfachen Anforderungen entspricht. Und es gibt einige andere nützliche Methoden, wie die Methode Char.IsLetterOrDigit(). Eine vollständige Liste finden Sie in der Dokumentation.

Zusammenfassung

Ein char -Datentyp (Alias für System.Char) wird verwendet, um ein einzelnes Unicode-Zeichen darzustellen. Um mehr als ein Zeichen darzustellen, verwenden Sie eine Zeichenfolge, die im Grunde nur eine Liste von Zeichen ist. Im nächsten Artikel werden wir über Strings sprechen.


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!