C #의 Int에서 Char로


96

Int가 유효한 값 범위에있는 경우 Int 값을 Utf16의 해당 Char로 변환하는 가장 좋은 방법은 무엇입니까?

답변:


140
(char)myint;

예를 들면 :

Console.WriteLine("(char)122 is {0}", (char)122);

수율 :

(char) 122는 z입니다.


이것은 잘못된 대답입니다. c = (char) 49는 '1'이 아닌 1입니다
nykwil

10
@nykwil 나는 gimel의 대답에 잘못된 것이 없습니다.
Tom Lint

11
@nykwil-잘못된 정보입니다. TrueConsole.WriteLine((char)49 == '1'); 줄 것 입니다. 이 캐스트 를 사용하는 것은 완벽합니다. 귀하의 설명은 작동하지 않는 유효한 예를 제공하지 않습니다. 또한, 인 거짓 기본적으로 의견의 근거를 만든다. char c = (char)49; string s = "1two3"; Console.WriteLine(c == s[0]);Console.WriteLine((char)49 == 1);
Travis J

62
int i = 65;
char c = Convert.ToChar(i);

47
Convert.ToChar는 결국 "(char) value"로 명시 적 변환을 수행합니다. 여기서 "value"는 int 값입니다. 이를 수행하기 전에 "값"이 0에서 0xffff 범위에 있는지 확인하고 그렇지 않은 경우 OverflowException을 발생시킵니다. 추가 메서드 호출, 값 / 경계 검사 및 OverflowException이 유용 할 수 있지만 그렇지 않은 경우 "(char) value"만 사용하면 성능이 향상됩니다.
Triynko 2011

17

공식화 된 질문에 정확히 답하지는 않지만 최종 결과를 문자열로 필요하거나 가져올 수있는 경우 사용할 수도 있습니다.

string s = Char.ConvertFromUtf32(56);

필요한 경우 대리 UTF-16 쌍을 제공하여 BMP 외부에있는 경우 보호합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.