获取字符串中所有字符的数值
Get numeric value of all characters in a string
我想在 C# 中获取字符串的十进制 ASCII 值,例如:
"abc123s"
将是:97 98 99 49 50 51 115
(979899495051115)
'f1c3s1would be:
102 49 99 51 115 49or
1024999511549`
我尝试了 Convert.ToInt32
或 Int.Parse
,但它们没有达到预期的效果。
我可以使用什么方法?
您可以将 Convert.ToInt16()
与每个字符的循环结合使用,并将 int 结果作为字符串添加到一起。
您不应该使用 Byte,因为每个 Char 都是 Int16。
假设您只使用 ASCII 字符串,您可以将 string
的每个字符转换为 byte
以获得 ASCII 表示。您可以对值使用 ToString
将结果回滚到 string
:
string str = "abc123s";
string outStr = String.Empty;
foreach (char c in str)
outStr += ((byte) c).ToString();
您还可以将 byte
值作为数组获取,然后使用 String.Join
:
将结果变成 string
byte[] asciiVals = System.Text.Encoding.ASCII.GetBytes(str);
outStr = String.Join(String.Empty, asciiVals);
尝试
string all = "";
all = String.Join(String.Empty, "abc123s".Select(c => ((int)c).ToString()).ToArray());
我想在 C# 中获取字符串的十进制 ASCII 值,例如:
"abc123s"
将是:97 98 99 49 50 51 115
(979899495051115)
'f1c3s1would be:
102 49 99 51 115 49or
1024999511549`
我尝试了 Convert.ToInt32
或 Int.Parse
,但它们没有达到预期的效果。
我可以使用什么方法?
您可以将 Convert.ToInt16()
与每个字符的循环结合使用,并将 int 结果作为字符串添加到一起。
您不应该使用 Byte,因为每个 Char 都是 Int16。
假设您只使用 ASCII 字符串,您可以将 string
的每个字符转换为 byte
以获得 ASCII 表示。您可以对值使用 ToString
将结果回滚到 string
:
string str = "abc123s";
string outStr = String.Empty;
foreach (char c in str)
outStr += ((byte) c).ToString();
您还可以将 byte
值作为数组获取,然后使用 String.Join
:
string
byte[] asciiVals = System.Text.Encoding.ASCII.GetBytes(str);
outStr = String.Join(String.Empty, asciiVals);
尝试
string all = "";
all = String.Join(String.Empty, "abc123s".Select(c => ((int)c).ToString()).ToArray());