Char 구조체
유니코드 문자를 나타냅니다.
네임스페이스: System
어셈블리: mscorlib(mscorlib.dll)
구문
‘선언
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public Structure Char
Implements IComparable, IConvertible, IComparable(Of Char), _
IEquatable(Of Char)
‘사용 방법
Dim instance As Char
[SerializableAttribute]
[ComVisibleAttribute(true)]
public struct Char : IComparable, IConvertible, IComparable<char>,
IEquatable<char>
[SerializableAttribute]
[ComVisibleAttribute(true)]
public value class Char : IComparable, IConvertible, IComparable<wchar_t>,
IEquatable<wchar_t>
/** @attribute SerializableAttribute() */
/** @attribute ComVisibleAttribute(true) */
public final class Char extends ValueType implements IComparable, IConvertible,
IComparable<char>, IEquatable<char>
JScript에서는 구조체를 사용할 수 있지만 새로 선언할 수는 없습니다.
설명
.NET Framework에서는 Char 구조체를 사용하여 유니코드 문자를 나타냅니다. 유니코드 표준은 코드 포인트라고 하는 고유의 21비트 스칼라 수를 가진 각 유니코드 문자를 식별하고 코드 포인트가 하나 이상의 16비트 값의 시퀀스로 인코딩되는 방법을 지정하는 UTF-16 인코딩 형식을 정의합니다. 각 16비트 값은 16진수 0x0000부터 0xFFFF까지의 범위에 있고 Char 구조체에 저장됩니다. Char 개체의 값은 해당 16비트 숫자(서수) 값입니다.
String 개체는 텍스트 문자열을 나타내는 Char 구조체의 순차적인 컬렉션입니다. 대부분의 유니코드 문자는 단일 Char 개체로 나타낼 수 있지만 기본 문자, 서로게이트 쌍 및/또는 조합 문자 시퀀스로 인코딩되는 문자는 여러 Char 개체로 나타낼 수 있습니다. 따라서 String 개체의 Char 구조체가 단일 유니코드 문자와 동일할 필요는 없습니다.
유니 코드에 대한 자세한 내용은 Unicode home page를 참조하십시오.
기능
Char 구조체는 Char 개체를 비교하고, 현재 Char 개체의 값을 다른 형식의 개체로 변환하고, Char 개체의 유니코드 범주를 결정하는 다음 메서드를 제공합니다.
ConvertFromUtf32 메서드를 사용하면 코드 포인트를 문자열로 변환할 수 있습니다. ConvertToUtf32 메서드를 사용하면 Char 개체 또는 Char 개체의 서로게이트 쌍을 코드 포인트로 변환할 수 있습니다.
GetUnicodeCategory 메서드를 사용하면 문자의 유니코드 범주를 가져올 수 있습니다. IsControl, IsDigit, IsHighSurrogate, IsLetter, IsLetterOrDigit, IsLower, IsLowSurrogate, IsNumber, IsPunctuation, IsSeparator, IsSurrogate, IsSurrogatePair, IsSymbol, IsUpper 및 IsWhiteSpace 메서드를 사용하면 문자가 숫자, 문자, 문장 부호, 제어 문자 등과 같은 특정 유니코드 범주에 속하는지 여부를 확인할 수 있습니다.
GetNumericValue 메서드를 사용하면 숫자를 나타내는 Char 개체를 숫자 값 형식으로 변환할 수 있습니다. Parse와 TryParse를 사용하면 문자열의 문자를 Char 개체로 변환할 수 있습니다. ToString을 사용하면 Char 개체를 String 개체로 변환할 수 있습니다.
ToLower, ToLowerInvariant, ToUpper 및 ToUpperInvariant 메서드를 사용하면 Char 개체의 대/소문자를 바꿀 수 있습니다.
인터페이스 구현
이 형식은 IConvertible, IComparable 및 IComparable 인터페이스를 구현합니다. 변환을 위해 이 형식의 IConvertible 명시적 인터페이스 멤버 구현 대신 Convert 클래스를 사용합니다.
예제
다음 코드 예제에서는 Char의 메서드 중 일부를 보여 줍니다.
imports System
Module CharStructure
Public Sub Main()
Dim chA As Char
chA = "A"c
Dim ch1 As Char
ch1 = "1"c
Dim str As String
str = "test string"
Console.WriteLine(chA.CompareTo("B"c)) ' Output: "-1" (meaning 'A' is 1 less than 'B')
Console.WriteLine(chA.Equals("A"c)) ' Output: "True"
Console.WriteLine(Char.GetNumericValue(ch1)) ' Output: "1"
Console.WriteLine(Char.IsControl(Chr(9))) ' Output: "True"
Console.WriteLine(Char.IsDigit(ch1)) ' Output: "True"
Console.WriteLine(Char.IsLetter(","c)) ' Output: "False"
Console.WriteLine(Char.IsLower("u"c)) ' Output: "True"
Console.WriteLine(Char.IsNumber(ch1)) ' Output: "True"
Console.WriteLine(Char.IsPunctuation("."c)) ' Output: "True"
Console.WriteLine(Char.IsSeparator(str, 4)) ' Output: "True"
Console.WriteLine(Char.IsSymbol("+"c)) ' Output: "True"
Console.WriteLine(Char.IsWhiteSpace(str, 4)) ' Output: "True"
Console.WriteLine(Char.Parse("S")) ' Output: "S"
Console.WriteLine(Char.ToLower("M"c)) ' Output: "m"
Console.WriteLine("x"c.ToString()) ' Output: "x"
End Sub
End Module
using System;
public class CharStructureSample {
public static void Main() {
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"
}
}
using namespace System;
int main()
{
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' ); // Output: "x"
}
import System.* ;
public class CharStructureSample
{
public static void main(String[] args)
{
Character chA = new Character('A');
char ch1 = '1';
String str = "test string";
// Output: "-1" (meaning 'A' is 1 less than 'B')
Console.WriteLine(chA.compareTo(new Character('B')));
// Output: "True"
Console.WriteLine(chA.equals(new Character('A')));
// Output: "1"
Console.WriteLine(System.Char.GetNumericValue(ch1));
// Output: "True"
Console.WriteLine(Char.IsControl('\t'));
// Output: "True"
Console.WriteLine(System.Char.IsDigit(ch1));
// Output: "False"
Console.WriteLine(Char.IsLetter(','));
// Output: "True"
Console.WriteLine(Char.IsLower('u'));
// Output: "True"
Console.WriteLine(System.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: "S"
Console.WriteLine(Char.Parse("S"));
// Output: "m"
Console.WriteLine(Char.ToLower('M'));
// Output: "x"
Console.WriteLine(System.Convert.ToString('x'));
} //main
} //CharStructureSample
스레드로부터의 안전성
이 형식은 다중 스레드 작업을 수행하는 데 안전합니다.
플랫폼
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.
버전 정보
.NET Framework
2.0, 1.1, 1.0에서 지원
.NET Compact Framework
2.0, 1.0에서 지원