如何在C#中将格式化的字符串转换为int(如果我知道格式)?

时间:2012-11-07 09:44:34

标签: c# int string.format

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

我怎么能这样做?

4 个答案:

答案 0 :(得分:3)

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

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

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

除非我遗漏了什么?

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

答案 1 :(得分:2)

int.Parse("123 456 000$", NumberStyles.AllowCurrencySymbol |
                          NumberStyles.Number);

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

答案 2 :(得分: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);

这可以帮助你获得价值

答案 3 :(得分:0)

我会轻松一点:

String formattedString = "12345500$";
            formattedString.Remove(formattedString.Length - 1);
            int value = int.Parse(formattedString);