获取字符串中所有字符的数值

时间:2015-06-06 13:43:53

标签: c# ascii

我想在C#中获取字符串的十进制ASCII值,例如:

"abc123s"将是:97 98 99 49 50 51 115 (979899495051115) 'f1c3s1“would be: 102 49 99 51 115 49 or 1024999511549`

我尝试了Convert.ToInt32Int.Parse,但它们没有产生预期的效果。

我可以使用哪种方法?

3 个答案:

答案 0 :(得分:3)

假设您只使用ASCII字符串,则可以将string的每个字符强制转换为byte以获取ASCII表示形式。您可以使用string在值{<1}}上将结果回滚到ToString

string str = "abc123s";
string outStr = String.Empty;

foreach (char c in str)
    outStr += ((byte) c).ToString();

您还可以将byte值作为数组获取,并使用string将结果变为String.Join

byte[] asciiVals = System.Text.Encoding.ASCII.GetBytes(str);
outStr = String.Join(String.Empty, asciiVals);

答案 1 :(得分:1)

尝试

string all = "";

all = String.Join(String.Empty, "abc123s".Select(c => ((int)c).ToString()).ToArray());

答案 2 :(得分:0)

您可以将Convert.ToInt16()与每个字符的循环结合使用,并将int Results作为字符串添加到一起。

你不应该使用Byte,因为每个Char都是Int16。