public void parse_table(BinaryReader inFile) { byte[] idstring = inFile.ReadBytes(6); Console.WriteLine(Convert.ToString(idstring)); }
这是一个简单的片段:读取文件的前6个字节并将其转换为字符串。
然而,控制台显示System.Byte[]
。
也许我正在使用错误的类进行转换。我该怎么用?它最终将解析以UTF-8编码的文件名,我打算使用相同的方法来读取所有文件名。
答案 0 :(得分:62)
实际上是:
Console.WriteLine(Encoding.Default.GetString(value));
或特别针对UTF-8:
Console.WriteLine(Encoding.UTF8.GetString(value));
答案 1 :(得分:38)
我处于困境,我有一个签名的字节数组(sbyte[]
)作为Test类的输入,我想用普通的字节数组替换它({{1为了简单起见。我从谷歌搜索到达这里,但汤姆的回答对我没用。
我编写了一个帮助方法来打印出给定byte[]
的初始值设定项:
byte[]
你可以像这样使用它:
public void PrintByteArray(byte[] bytes)
{
var sb = new StringBuilder("new byte[] { ");
foreach (var b in bytes)
{
sb.Append(b + ", ");
}
sb.Append("}");
Console.WriteLine(sb.ToString());
}
输出是有效的C#,然后可以将其复制到您的代码中。
为了完整起见,这里是var signedBytes = new sbyte[] { 1, 2, 3, -1, -2, -3, 127, -128, 0, };
var unsignedBytes = UnsignedBytesFromSignedBytes(signedBytes);
PrintByteArray(unsignedBytes);
// output:
// new byte[] { 1, 2, 3, 255, 254, 253, 127, 128, 0, }
方法:
UnsignedBytesFromSignedBytes
答案 2 :(得分:13)
这只是Jesse Webbs代码的更新版本,不附加不必要的尾随,
字符。
public static string PrintBytes(this byte[] byteArray)
{
var sb = new StringBuilder("new byte[] { ");
for(var i = 0; i < byteArray.Length;i++)
{
var b = byteArray[i];
sb.Append(b);
if (i < byteArray.Length -1)
{
sb.Append(", ");
}
}
sb.Append(" }");
return sb.ToString();
}
此方法的输出为:
new byte[] { 48, ... 135, 31, 178, 7, 157 }
答案 3 :(得分:7)
我在代码库中使用了这个简单的代码:
static public string ToReadableByteArray(byte[] bytes)
{
return string.Join(", ", bytes);
}
使用:
Console.WriteLine(ToReadableByteArray(bytes));
答案 4 :(得分:2)
d = {v:k for k, v in enumerate(df['Class'].unique())}
print (d)
{'iris-versicolor': 0, 'iris-virginica': 2, 'iris-setosa': 1}
df['Class'] = df['Class'].map(d)
print (df)
Sepal Length Sepal Width Petal Length Petal Width Class
0 89 5.5 2.5 4.0 1.3 0
1 85 6.0 3.4 4.5 1.6 0
2 31 5.4 3.4 1.5 0.4 1
3 52 6.9 3.1 4.9 1.5 0
4 111 6.4 2.7 5.3 1.9 2
答案 5 :(得分:0)
一些使用linq和字符串插值的乐趣:
public string ByteArrayToString(byte[] bytes)
{
if ( bytes == null ) return "null";
string joinedBytes = string.Join(", ", bytes.Select(b => b.ToString()));
return $"new byte[] {{ {joinedBytes} }}";
}
测试案例:
byte[] bytes = { 1, 2, 3, 4 };
ByteArrayToString( bytes ) .Dump();
ByteArrayToString(null).Dump();
ByteArrayToString(new byte[] {} ) .Dump();
输出:
new byte[] { 1, 2, 3, 4 }
null
new byte[] { }