Efficiently converting a string to a byte array in C# (Not with Encoding)
在每个元素上不使用Convert.ToByte()的情况下,如何将字符串"0100"转换为byte数组{0,1,0,0}?字符串只能包含字符0到9。
- 以下链接有助于1)stackoverflow.com/questions/16072709/…2)stackoverflow.com/questions/30545162/…3)stackoverflow.com/questions/6254003/…4)rextester.com/discussion/hhsusw47299/…
- 您是假设字符串中的字符始终是0-9范围内的数字,还是始终是8位字符集内的数字?
- @我说过,不使用编码,示例A变为65。只有0变为0字节。
- @是的,很抱歉我会编辑这个。
- @JP:有两个链接没有编码。而且,看到所有答案不仅仅是被接受的答案
- @JP U99:另外,您似乎只想按字符(0-9)拆分字符串,并将结果聚合到字节数组中。eser的答案看起来足以执行该功能。
- @所有重复链接中的答案都将字符转换为其ASCII值,如"0"->48、"1"->49。下面的代码为"1"返回1。所以这不仅足够,而且是正确的。
- @是的,我都查过了。只有你的答案才能满足OP的怀疑+1。:)
与林克
1
| var bytes ="0100".Select(x => (byte)(x - '0')).ToArray(); |
- bytes的类型是什么?
- 我想这会给你一个int数组。如果需要字节数组,则需要将x - '0'转换为byte。
- @埃里克利珀特,你说得对:)