簡體   English   中英

C#字節字符串到字節數組

[英]C# Bytes String to Bytes Array

我有以下字符串

17 80 41 00 01 00 01 00 08 00 44 61 72 65 46 61 74 65 01 00 00 00 01 00 03 00 01 00 09 00 43 68 61 6E 6E 65 6C 2D 31 00 00 02 00 09 00 43 68 61 6E 6E 65 6C 2D 32 65 00 03 00 09 00 43 68 61 6E 6E 65 6C 2D 33 65 00

將它作為用戶輸入並使其成為字節數組的最佳方法是什么?

嘗試:

string text = ...
byte[] bytes = text.Split()
                   .Select(t => byte.Parse(t, NumberStyles.AllowHexSpecifier))
                   .ToArray();

如果您只想拆分空格字符(而不是任何空格),請使用Split (' ')

如果用戶正在將其輸入命令行,請執行以下操作:

        string input = GetInput(); // this is where you get the input
        string[] numbs = input.Split(' ');
        byte[] array = new byte[numbs.Length];
        int i = 0;

        foreach (var numb in numbs)
        {
            array[i++] = byte.Parse(numb, NumberStyles.HexNumber);
        }

您可以使用System.Byte中的Parse方法來解析單個hax對:

// Get the string from the user
string s=Console.ReadLine();

// Convert to a byte array
byte[] sBytes=s.Split(new char[] {' '})
               .Select(hexChar => byte.Parse(hexChar,NumberStyles.HexNumber))
               .ToArray();

// *** Test code follows ***

// Display the bytes (optional), to verify that the conversion worked
StringBuilder hexString=new StringBuilder(sBytes.Length*3);

foreach (byte b in sBytes)     
{
  // Separate hex pairs with a space
  if (hexString.Length>0)
    hexString.Append(' ');
  // Append next hex pair (i.e., formatted byte)
  hexString.AppendFormat("{0:x2}",b);
}

Console.WriteLine(hexString);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM