Câu hỏi Int đến Char trong C #


Cách tốt nhất để chuyển đổi giá trị Int thành Char tương ứng trong Utf16 là gì, vì Int là trong phạm vi giá trị hợp lệ?


76
2017-11-14 11:07


gốc




Các câu trả lời:


(char)myint;

ví dụ:

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

sản lượng:

(char) 122 là z


111
2017-11-14 11:16



Đây là một câu trả lời tồi. c = (char) 49 là 1 không phải '1' - nykwil
@nykwil Tôi không thấy bất cứ điều gì sai trái với câu trả lời của gimel. - Tom Lint
@nykwil - Đó là thông tin sai lạc. Console.WriteLine((char)49 == '1'); Sẽ cho Thật. Như ý muốn char c = (char)49; string s = "1two3"; Console.WriteLine(c == s[0]); Sử dụng dàn diễn viên này là hoàn toàn tốt đẹp. Lời giải thích của bạn không cung cấp một ví dụ hợp lệ về nó không hoạt động. Hơn nữa, Console.WriteLine((char)49 == 1); Là sai mà về cơ bản làm cho bình luận của bạn vô căn cứ. - Travis J


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

51
2017-11-14 11:15



Convert.ToChar cuối cùng thực hiện một chuyển đổi rõ ràng là "(char) value", trong đó "value" là giá trị int của bạn. Trước khi làm như vậy, nó kiểm tra để đảm bảo "giá trị" nằm trong khoảng 0 đến 0xffff, và ném một OverflowException nếu nó không phải là. Cuộc gọi phương thức bổ sung, kiểm tra giá trị / ranh giới và OverflowException có thể hữu ích, nhưng nếu không, hiệu năng sẽ tốt hơn nếu bạn chỉ sử dụng giá trị "(char)". - Triynko


Mặc dù không trả lời chính xác câu hỏi như được xây dựng, nhưng nếu bạn cần hoặc có thể lấy kết quả cuối cùng như chuỗi, bạn cũng có thể sử dụng

string s = Char.ConvertFromUtf32(56)

sẽ cung cấp cho bạn các cặp utf16 thay thế nếu cần, bảo vệ bạn nếu bạn ở bên ngoài BMP.


14
2017-11-14 12:44