为了账号安全,请及时绑定邮箱和手机立即绑定

将用户输入(字节格式)转换为字节数组

将用户输入(字节格式)转换为字节数组

C#
幕布斯7119047 2021-04-26 17:41:14
我猜我正在寻找的是将a转换string[]为a byte[],而实际上没有将其内容转换string[]为字节,因为它们已经是字节了。我有以下代码:public static bool isHex(String hex) {    if(hex.Substring(0, 2) == "0x")        hex = hex.Substring(2, (hex.Length - 2));    return Regex.IsMatch(hex, @"\A\b[0-9a-fA-F]+\b\Z");}static void Main(string[] args) {    Console.Write("Input bytes: ");    String input = Console.Readline();    String[] valueArray = input.Split(new string[] { "\\x" }, StringSplitOptions.None);    for(int i = 0; i > valueArray.Length; i++)        if(!isHex(valueArray[i]))            usage(args[1] + " is not valid hex", 6);}它获取用户输入,并检查其是否为有效的十六进制。假设用户输入\x00\xff\x12,我想知道如何将其转换为字节数组。但是,我不想将字符串转换为字节,因为字节在字符串中(\ x 00 \ x ff \ x 12),但是我想将这些值插入字节数组中。我不想数组元素自行字节转换(即["00", "FF", "12"]至["30", "30", "66", "66", "31", "32"],因为["00", "FF", "12"]是有效的十六进制)。
查看完整描述

1 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

检查一下,我修改了您的代码,您需要的字节数组是 byteArray


顺便说一句,您的循环条件是错误的,应该是 i < valueArray.Length


我不确定这是不是你想要的


using System;

using System.Collections.Generic;

using System.Globalization;


namespace ConsoleApplication

{

    class Program

    {

        static void Main(string[] args)

        {

            Console.Write("Input bytes: ");

            String input = Console.ReadLine();

            String[] valueArray = input.Split(new string[] { "\\x" }, StringSplitOptions.RemoveEmptyEntries);

            List<byte> byteArray = new List<byte>();

            for (int i = 0; i < valueArray.Length; i++) {

                int ret = -1;

                string hex = valueArray[i];

                if (hex.StartsWith("0x"))

                    hex = hex.Substring(2, hex.Length - 2);

                if (!Int32.TryParse(hex, NumberStyles.HexNumber, null, out ret) || ret < 0 || ret > 0xff) {

                    Console.WriteLine("{0} is not valid hex", valueArray[i]);

                    return;

                }

                byteArray.Add((byte)ret);

            }

        }

    }

}


查看完整回答
反对 回复 2021-05-08
  • 1 回答
  • 0 关注
  • 185 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信