从数字字符串中删除空格?

时间:2012-03-06 05:41:23

标签: c#

我正在尝试从文本框中删除数字中的任何空格(txtAllNum),然后再将它们转换为数组。但是在尝试将它们转换为数组时出现了Input string was not in a correct format.错误。

请建议。

(将插入的数字列表在开头已经有空格,所以我不能通过验证拒绝它们)

string allNumStr = txtAllNum.Text;
allNumStr = allNumStr.Replace(" ", "");

var intAry = allNumStr
   .Split(new string[] { Environment.NewLine }, 
          StringSplitOptions.RemoveEmptyEntries)
   .Select(s => Int64.Parse(s));

以下是示例输入数据(它们在开头有空格)

  

95949323114
  9592099619个
  9595173327个
  95943054737
  95943090230
  95991046911
  9595028775个
  95943173776
  95973494329
  95973082074
  95973000239

2 个答案:

答案 0 :(得分:1)

根据您的示例,是否会提供简单的TrimStart() call帮助?

string allNumStr = txtAllNum.Text;
allNumStr = allNumStr.Replace(" ", "");

var intAry = allNumStr
   .Split(new string[] { Environment.NewLine }, 
          StringSplitOptions.RemoveEmptyEntries)
   .Select(s => Int64.Parse(s.TrimStart()));

答案 1 :(得分:1)

添加一个应该做的诀窍。我编译了这个并对其进行了测试,它同时考虑了前导和尾随空白以及空白条目。

此外,这假设.Net 4(string.IsNullOrWhiteSpace)。如果使用更少的东西,你需要更改where语句。

string allNumStr = txtAllNum.Text;
var intAry = allNumStr
    .Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)
    .Where(s => !string.IsNullOrWhiteSpace(s))
    .Select(s => Int64.Parse(s.Trim()));