C#将Decimal(String)转换为Regular String

时间:2011-04-15 05:39:45

标签: c# decimal

我有一个使用十进制编码文本的字符串,如何使用C#解码小数?

字符串如下:

"03211212122771217573772312402503648" - The original C# line compiled.

0 32 1 1 2 1 2 1 2 2 77 121 75 73 77 2 3 1 2 4 0 2 5 0 3 6 4 8 - The spaces between each ASCII character / decimal set.

中间的所有空格都是ASCII字符之间的空格。

感谢。

编辑:

我想我的问题不明确......

它目前采用字符串中的数字格式,编码为char。

我想解码其中的数据以发送到服务器。

服务器不接受数字,而是想要原始数据,我将如何进行此操作?喜欢:77 - M 121 - y等...

我该怎么做?

2 个答案:

答案 0 :(得分:2)

这是不可能的。通过在没有分隔符的情况下连接值,您省略了解码字符串所需的信息。

如果我们从一开始就检查字符串,那么在你无法确定其含义之前,你就不会走得太远。

如果您知道没有值与前导零一起存储,则第一个值可以确定为0,例如032

第二个值不再可能确定原始内容。可能是332321,甚至321121212277121757377

编辑:

如果在数字之间添加分隔符,则很容易解析字符串:

int[] values = str.Split('-').Select(Int32.Parse).ToArray();

代码说明:

str.Split('-')返回一个字符串数组,其中每个字符串都包含一个数字。

.Select(Int32.Parse)会将每个字符串解析为一个数字,它是.Select(s => Int32.Parse(s))的缩写形式。不需要lambda表达式,因为Int32.Parse方法已经适合为Select方法创建委托。

.ToArray()IEnumerable<int> Select转换为整数数组。

答案 1 :(得分:1)

如果在不同的数字之间加上空格,可以使用以下内容:

IEnumerable<int> numbers = "1 2 3 4 5".Split().Select(s => int.Parse(s));