Karakters in C#
System.Char
De structure System.Char is eenvoudig. De structure heeft twee velden van het type constant MinValue, gedefinieerd al \0 en MaxValue gedefinieerd als \uFFFF.
Als je een instantie van Char structure hebt, kan je de static GetUnicodeCategory oproepen. Die methode retourneert een waarde van het System.Globalisation.UnicodeCategory opsommingtype. Die waarde geeft aan als het karakter:
- een controlekarakter,
- een geldsymbool,
- kleine letter,
- hoofdletter,
- leesteken,
- wiskundig symbool,
- of een ander karakter is.
Die categoriën zijn door de Unicode standaard is vastgelegd.
char ch2 = '2'; string str = "Upper Case"; Console.WriteLine(Char.GetUnicodeCategory('a')); // Output: "LowercaseLetter" Console.WriteLine(Char.GetUnicodeCategory(ch2)); // Output: "DecimalDigitNumber" Console.WriteLine(Char.GetUnicodeCategory(str, 6)); // Output: "UppercaseLetter"
De structure Char bevat static methoden om die taak te vergemakkelijken. De meeste methoden roepen intern de GetUniCodeCategory op en retourneren false of true.
IsDigit, IsLetter, IsWhiteSpace, IsUpper, IsLower, IsPunctuation, IsLetterOrDigit, IsControl, IsNumber, IsSeparator, IsSurrogate, IsLowSurrogate, IsHighSurrogate, IsSymbol, retourneert welk soort karakter er in Char zit.
Je kan een karakter van kleine letter naar hoofdletter omzetten zonder rekening te houden met de ingestelde cultuur op de lokale computer met ToLowerInvariant of ToUpperInvariant. Als je ToLower of ToUpper gebruikt wordt er rekening gehouden met de cultuur informatie door de static CurrentCulture eigenschap op te roepen van de System.Threading.Tread. Je kan zelf een bepaalde cultuur specificeren door een instantie van CultureInfo klasse aan die methoden mee te geven. Voor de Fransen bijvoorbeeld is é in hoofdletter É.
De ToString methode retourneert een string die uit één karakter bestaat. Parse en TryParse daarentegen nemen een string, die uit één karakter bestaat, aan en retourneren een UTF-16 code point.
char chA = 'A'; char ch1 = '1'; string str = "test string"; Console.WriteLine(chA.CompareTo('B')); // Output: "-1" (meaning 'A' is 1 less than 'B') Console.WriteLine(chA.Equals('A')); // Output: "True" Console.WriteLine(Char.GetNumericValue(ch1)); // Output: "1" Console.WriteLine(Char.IsControl('\t')); // Output: "True" Console.WriteLine(Char.IsDigit(ch1)); // Output: "True" Console.WriteLine(Char.IsLetter(',')); // Output: "False" Console.WriteLine(Char.IsLower('u')); // Output: "True" Console.WriteLine(Char.IsNumber(ch1)); // Output: "True" Console.WriteLine(Char.IsPunctuation('.')); // Output: "True" Console.WriteLine(Char.IsSeparator(str, 4)); // Output: "True" Console.WriteLine(Char.IsSymbol(' ')); // Output: "True" Console.WriteLine(Char.IsWhiteSpace(str, 4)); // Output: "True" Console.WriteLine(Char.Parse("S")); // Output: "S" Console.WriteLine(Char.ToLower('M')); // Output: "m" Console.WriteLine('x'.ToString()); // Output: "x"