Int to Char ใน C #


97

วิธีที่ดีที่สุดในการแปลงค่า Int เป็น Char ที่เกี่ยวข้องใน Utf16 คืออะไรเนื่องจาก Int อยู่ในช่วงของค่าที่ถูกต้อง

คำตอบ:


142
(char)myint;

ตัวอย่างเช่น:

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

ผลตอบแทน:

(ถ่าน) 122 คือ z


นี่เป็นคำตอบที่ไม่ดี c = (ถ่าน) 49 คือ 1 ไม่ใช่ '1'
nykwil

10
@nykwil ฉันไม่เห็นอะไรผิดปกติกับคำตอบของ gimel
Tom Lint

11
@nykwil - นั่นคือข้อมูลที่ผิด Console.WriteLine((char)49 == '1');จะให้ทรู . ตามต้องการchar c = (char)49; string s = "1two3"; Console.WriteLine(c == s[0]);การใช้นักแสดงนี้ทำได้ดีอย่างสมบูรณ์แบบ คำอธิบายของคุณไม่มีตัวอย่างที่ถูกต้องว่าไม่ทำงาน นอกจากนี้Console.WriteLine((char)49 == 1);เป็นเท็จซึ่งทำให้ความคิดเห็นของคุณไม่มีมูลความจริง
Travis J

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

47
Convert ToChar ทำการแปลงอย่างชัดเจนเป็น "(char) value" โดยที่ "value" คือค่า int ของคุณ ก่อนดำเนินการดังกล่าวจะตรวจสอบเพื่อให้แน่ใจว่า "ค่า" อยู่ในช่วง 0 ถึง 0xffff และพ่น OverflowException หากไม่ใช่ การเรียกเมธอดพิเศษการตรวจสอบค่า / ขอบเขตและ OverflowException อาจมีประโยชน์ แต่ถ้าไม่เช่นนั้นประสิทธิภาพจะดีกว่าถ้าคุณใช้ "(char) value"
Triynko

17

แม้ว่าจะไม่ได้ตอบคำถามตรงตามสูตร แต่ถ้าคุณต้องการหรือสามารถใช้ผลลัพธ์สุดท้ายเป็นสตริงได้คุณก็สามารถใช้ได้เช่นกัน

string s = Char.ConvertFromUtf32(56);

ซึ่งจะให้ตัวแทน UTF-16 คู่ถ้าจำเป็นปกป้องคุณถ้าคุณจะออกจากด้านข้างของBMP

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.