Geo*_*ter 1 .net c# string hex
我最近正在开发一个项目,我需要将常规字符串转换为ASCIII十六进制并将十六进制存储在字符串中.
所以我有类似的东西
string random_string = "4000124273218347581"
Run Code Online (Sandbox Code Playgroud)
我想将它转换为表单中的十六进制字符串
string hex_string = "34303030313234323733323138333437353831"
Run Code Online (Sandbox Code Playgroud)
这可能看起来像一个奇怪的特定任务,但它是我遇到的,当我试图找到如何执行它,我在网上找不到任何答案.
无论如何,我想出来并创建了一个类来使我的代码更整洁.
如果其他人需要将常规字符串转换为十六进制字符串,我将在一个包含我的解决方案的时刻发布答案.
(我对stackoverflow相当新,所以我希望这样做没问题)
=========================================
事实证明,由于没有足够高的声誉,我无法在询问的前8个小时内自己回答我的问题.
所以我在这里坚持我的答案:
好的,所以这是我的解决方案:
我创建了一个StringToHex在命名空间中调用的类
public class StringToHex
{
private string localstring;
private char[] char_array;
private StringBuilder outputstring = new StringBuilder();
private int value;
public StringToHex(string text)
{
localstring = text;
}
public string ToAscii()
{
/* Convert text into an array of characters */
char_array = localstring.ToCharArray();
foreach (char letter in char_array)
{
/* Get the integral value of the character */
value = Convert.ToInt32(letter);
/* Convert the decimal value to a hexadecimal value in string form */
string hex = String.Format("{0:X}", value);
/* Append hexadecimal version of the char to the string outputstring*/
outputstring.Append(Convert.ToString(hex));
}
return outputstring.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
要使用它,您需要执行以下形式:
/* Convert string to hexadecimal */
StringToHex an_instance_of_stringtohex = new StringToHex(string_to_convert);
string converted_string = an_instance_of_stringtohex.ToAscii();
Run Code Online (Sandbox Code Playgroud)
如果它正常工作,转换后的字符串应该是原始字符串长度的两倍(由于十六进制使用两个字节来表示每个字符).
现在,正如某人已经指出的那样,你可以在这里找到一篇类似的文章:
http://www.c-sharpcorner.com/UploadFile/Joshy_geo/HexConverter10282006021521AM/HexConverter.aspx
但我没有发现它对我的具体任务有多大帮助,我想我的解决方案更优雅;)
只要字符串中的字符代码不大于255(0xFF),这就可以工作:
string hex_string =
String.Concat(random_string.Select(c => ((int)c).ToString("x2")));
Run Code Online (Sandbox Code Playgroud)
注意:这也适用于低于16(0x10)的字符代码,例如,它将"0D0A"从换行符生成十六进制代码"\r\n",而不是"DA".
| 归档时间: |
|
| 查看次数: |
8102 次 |
| 最近记录: |