2

例如,我已经格式化了字符串,123 456 000$并且我知道这个字符串的格式{0:### ### ##0}$。我想int value = 123456000;使用已知格式从 C# 中的这个字符串中获取。

我怎么能这样做?

4

4 回答 4

4
mytext = System.Text.RegularExpressions.Regex.Replace(mytext.Name, "[^.0-9]", ""); 

或类似的东西摆脱讨厌的非数字

然后删除前几个字符1,2,3...和最后几个长度,长度-1,长度-3...

除非我错过了什么?

哦,是的,还有 Convert.Toint32(mytext)

于 2012-11-07T09:48:51.410 回答
2
int.Parse("123 456 000$", NumberStyles.AllowCurrencySymbol |
                          NumberStyles.Number);

http://msdn.microsoft.com/en-us/library/c09yxbyt.aspx

于 2012-11-07T09:48:29.947 回答
2

我认为你将不得不构造一个类似NumberFormatInfo的来解析字符串值。$对于文本中使用的货币符号,在您的情况下,千组分隔符space不是,,因此自定义数字格式信息应该可以帮助您解析它。

string val = "123 456 000$";
NumberFormatInfo numinf = new NumberFormatInfo();
numinf.CurrencySymbol = "$";
numinf.CurrencyGroupSeparator = " ";
numinf.NumberGroupSeparator = " "; // you have space instead of comma as the seperator
int requiredval = int.Parse(val,NumberStyles.AllowCurrencySymbol | NumberStyles.AllowThousands,  numinf);

这应该可以帮助您获得价值

于 2012-11-07T09:55:15.720 回答
0

我会让它变得简单:

String formattedString = "12345500$";
            formattedString.Remove(formattedString.Length - 1);
            int value = int.Parse(formattedString);
于 2012-11-07T09:49:34.290 回答