簡體   English   中英

C#-將十六進制值的字符串轉換為十六進制

[英]C# - Convert a string of hex values to hex

這聽起來可能很奇怪,但是我的問題是我有一個來自文本文件的十六進制值的文本字符串,如下所示:

"0x0f, 0x40, 0xff, ...."

我將它們存儲在一個由定界符分隔的數組中,但是我現在需要做的是用十六進制表示一個字節數組:

stringArray[0] = "0x0f";

byteArray[0] = 0x0f;

我該怎么做(用戶可以加載文本文件,所以我不知道值是什么),我可以使用某種算術嗎?

如果字符串格式正確,則可以使用以下代碼創建數組(如果輸入格式錯誤,則會引發異常):

var text = "0x0f, 0x40, 0xff";
var bytes = text
  .Split(new[] { ", " }, StringSplitOptions.None)
  .Select(s => (Byte) Int32.Parse(s.Substring(2), AllowHexSpecifier));

您只需要解析每個字符串。 因為每個值僅是一個值,所以您可以執行以下操作:

byte b;
if (byte.TryParse(s, NumberStyles.HexNumber, 
    CultureInfo.InvariantCulture.NumberFormat, out b)) 
{
    // b contains the value.
}

其中s是要解析的字符串,b是結果值。

非奇數十六進制字符串是正確的。 從中檢查源是否獲得此字符串。 這是由於限制字符數而導致的字符串截斷。 如果String是圖像存儲在數據庫中,則使用程序而不使用任何工具來檢索它

我在使用.net和MSSQL以及通過使用webservice和Java Client時遇到相同的問題

暫無
暫無

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

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