我想在C#中将字符串转换为Byte [],并在前面的主题的帮助下使用此代码:
string s = "0a";
System.Text.ASCIIEncoding encode = new System.Text.ASCIIEncoding();
byte[] b = encode.GetBytes(s);
Console.WriteLine(b);
但是当我运行此代码时,它只打印:“System.byte []”
答案 0 :(得分:0)
如果您要执行此操作Console.WriteLine(b)
,则会打印b
System.Byte[]
的类型。
要打印存储在byte[] b
中的字符串,只需使用System.Text.ASCIIEncoding.GetString(byte[] b);
所以在你的情况下,encode.GetString(b);
会得到你的字符串。
答案 1 :(得分:0)
您可以使用BitConverter类检查:http://msdn.microsoft.com/en-us/library/3a733s97(v=vs.100).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2
System.Text.ASCIIEncoding encode = new System.Text.ASCIIEncoding();
byte[] b = encode.GetBytes(s);
Console.WriteLine(BitConverter.ToString(b));
答案 2 :(得分:0)
我想我可能最终破译了你的问题。您是否尝试将字符串的十六进制数字转换为数组?
我假设您想从字符串中获取2位十六进制值并将每个批次转换为字节。如果没有,我和其他人一样迷失方向。 请注意,我没有包含任何错误检查!
byte[] data = new byte[s.Length/2];
for(int i = 0; i < s.Length/2; ++i)
{
byte val = byte.Parse(s.Substring(i*2,2), System.Globalization.NumberStyles.HexNumber);
data[i] = val;
}
foreach(byte bv in data)
{
Console.WriteLine(bv.ToString("X"));
}
答案 3 :(得分:0)
您的代码已经完成了将字符串转换为字节的技巧,如果您的查询是打印单个字节值,为什么不使用循环来打印字节数组中的值:
foreach (byte bb in b)
{
Console.Write(Convert.ToInt32(bb));
}
答案 4 :(得分:-1)
那是因为它返回了您正在键入的对象的类型。如果要打印数组的内容,请尝试以下操作:
Arrays.toString(byteArray)