如何将整数转换为字符串?它反过来但不是这样。
string message
Int64 message2;
message2 = (Int64)message[0];
如果消息为“hello”,则输出为104作为数字;
如果我这样做
string message3 = (string)message2;
我收到一条错误消息,说您无法将long转换为字符串。为什么是这样。方法.ToString()不起作用,因为它只将数字转换为字符串,因此它仍将显示为“104”。与Convert.ToString()相同。如何让它再次从104说“你好”?在C ++中,它允许您转换此类方法,但不允许在C#
中转换答案 0 :(得分:3)
message[0]
将字符串中的第一个字母设为char
,因此您将char
投放到long
,而不是string
投放到long
。
尝试再次将其转换回char
,然后连接所有字符以获取整个字符串。
答案 1 :(得分:2)
ToString()
工作正常。您的错误是转换为整数。
您希望如何在长整数中存储由非数字数字组成的字符串?如果要将数字视为字节数组,则可能对BitConverter
感兴趣。
如果要将数字ASCII代码转换为字符串,请尝试
((char)value).ToString()
答案 2 :(得分:2)
另一种替代方法是使用ASCII.GetBytes
方法,如下所示
string msg1 ="hello";
byte[] ba = System.Text.Encoding.ASCII.GetBytes(msg1);
//ba[0] = 104
//ba[1] = 101
//ba[2] = 108
//ba[3] = 108
//ba[4] = 111
string msg2 =System.Text.Encoding.ASCII.GetString(ba);
//msg2 = "hello"
答案 3 :(得分:1)
试试这个方法:
string message3 = char.ConvertFromUtf32(message2);
答案 4 :(得分:1)
没有字符串的整数表示,只有char。因此,正如其他人所说,104不是“hello”(字符串)的值,而是'h'(char)的值(参见ASCII chart here)。
我无法完全想到你为什么要将字符串转换为int数组然后再转换为字符串,但是这样做的方法是运行字符串并获取int值每个字符然后将int值重新转换为char值并连接每个字符。像
这样的东西string str = "hello"
List<int> N = new List<int>();
//this creates the list of int-values
for(int i=0;i<str.Count;i++)
N.Add((int)str[i]);
//and this joins it all back into a string
string newString = "";
for(int i=0;i<str.Count;i++)
newString += (char)N[i];