Char.GetUnicodeCategory Method (String, Int32)


Categorizes the character at the specified position in a specified string into a group identified by one of the UnicodeCategory values.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public static UnicodeCategory GetUnicodeCategory(
	string s,
	int index


Type: System.String

A String.

Type: System.Int32

The character position in s.

Return Value

Type: System.Globalization.UnicodeCategory

A UnicodeCategory enumerated constant that identifies the group that contains the character at position index in s.

Exception Condition

s is null.


index is less than zero or greater than the last position in s.

Character positions in a string are indexed starting from zero.

The Char.GetUnicodeCategorymethod does not always return the same UnicodeCategory value as the CharUnicodeInfo.GetUnicodeCategory(String, Int32) method when it is passed a particular character as a parameter. The CharUnicodeInfo.GetUnicodeCategory(String, Int32) method is designed to reflect the current version of the Unicode standard. In contrast, although the Char.GetUnicodeCategory method usually reflects the current version of the Unicode standard, it may return a character's category based on a previous version of the standard or it may return a category that differs from the current standard in order to preserve backward compatibility. As a result, we recommend that you use the CharUnicodeInfo.GetUnicodeCategory(Char) method instead of Char.GetUnicodeCategory(String, Int32).

Starting with the .NET Framework 4.6.2, Unicode characters are classified based on The Unix Standard, Version 8.0.0. In versions of the .NET Framework from the .NET Framework 4 to the .NET Framework 4.6.1, they are classified based on The Unix Standard, Version 6.3.0.

The following example demonstrates GetUnicodeCategory.

using System;

public class GetUnicodeCategorySample {
	public static void Main() {
		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"

.NET Framework
Available since 1.1
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top