我需要将char转换为十六进制值。请参阅Ascii表,但我列出了几个例子:
因此string str =“12345”; 需要获得转换后的str =“3132333435”
答案 0 :(得分:8)
我认为这就是你所需要的:
string finalValue;
byte[] ascii = Encoding.ASCII.GetBytes(yourString);
foreach (Byte b in ascii)
{
finalValue += b.ToString("X");
}
有关MSDN的更多信息:http://msdn.microsoft.com/en-us/library/system.text.encoding.ascii.aspx
编辑:到十六进制:
string finalValue;
int value;
foreach (char c in myString)
{
value = Convert.ToInt32(c);
finalValue += value.ToString("X");
// or finalValue = String.Format("{0}{1:X}", finalValue, value);
}
// use finalValue
答案 1 :(得分:3)
string.Join("", from c in "12345" select ((int)c).ToString("X"));
答案 2 :(得分:2)
string s = "abc123";
foreach(char c in s)
{
Response.Write((int)c + ",");
}
答案 3 :(得分:1)
将它放在一行中,更具可读性(imo)
var result = "12345".Aggregate("", (res, c) => res + ((byte)c).ToString("X"));
这会返回"3132333435"
,正如您所要求的那样:)