Int to Char di C #


96

Apa cara terbaik untuk mengonversi nilai Int ke Char yang sesuai di Utf16, mengingat Int berada dalam kisaran nilai yang valid?

Jawaban:


140
(char)myint;

sebagai contoh:

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

hasil:

(char) 122 adalah z


Ini jawaban yang buruk. c = (char) 49 adalah 1 bukan '1'
— nykwil

10
@nykwil Saya tidak melihat ada yang salah dengan jawaban gimel.
— Tom Lint

11
@nykwil - Itu adalah informasi yang salah. Console.WriteLine((char)49 == '1');Akan memberikan True . Seperti akan char c = (char)49; string s = "1two3"; Console.WriteLine(c == s[0]);Menggunakan pemeran ini baik-baik saja. Penjelasan Anda tidak memberikan contoh valid tentang tidak berfungsi. Selanjutnya, Console.WriteLine((char)49 == 1);adalah palsu yang pada dasarnya membuat komentar tak berdasar Anda.
— Travis J

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

47
Convert.ToChar akhirnya melakukan konversi eksplisit sebagai "(char) value", di mana "value" adalah nilai int Anda. Sebelum melakukannya, ia memeriksa untuk memastikan "nilai" berada dalam kisaran 0 hingga 0xffff, dan melontarkan OverflowException jika tidak. Pemanggilan metode ekstra, pemeriksaan nilai / batas, dan OverflowException mungkin berguna, tetapi jika tidak, performanya akan lebih baik jika Anda hanya menggunakan "(char) value".
— Triynko

17

Meskipun tidak persis menjawab pertanyaan seperti yang dirumuskan, tetapi jika Anda membutuhkan atau dapat mengambil hasil akhirnya sebagai string, Anda juga dapat menggunakan

string s = Char.ConvertFromUtf32(56);

yang akan memberi Anda pasangan pengganti UTF-16 jika diperlukan, melindungi Anda jika Anda berada di luar BMP .

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.