如何检查由一个空格C#分隔的数字数组

时间:2014-12-18 11:00:06

标签: c#

我有一个数字串,它用一个空格分隔:

1 2 3 4 5 6 . . . . 

如何正确测试?

如果是的话。将返回 false

1 b d 2 ...

或如果它被更多的空格分隔。将返回 false

1  3      5 3 

解决方案:

        string temp = "1 2 3 4 5 6";
        int number;
        bool result = temp.Split(' ').All(x => int.TryParse(x, out number));

谢谢@ Selman22。

3 个答案:

答案 0 :(得分:1)

只需将SplitAll方法一起使用:

int number;
bool result = str.Split(' ').All(x => int.TryParse(x, out number));

这将按空格分割字符串,并检查每个部分是否为有效的int。如果有字母或连续的空格,则返回false。

答案 1 :(得分:1)

使用正则表达式将字符串与:

匹配
\d( \d)*

这意味着:一个数字,然后可选地是单个空格的一次或多次,后跟一个数字。

在C#中,您可以这样使用它:

Regex regex = new Regex(@"\d( \d)*");
Match match = regex.Match("1 2 3 4 5");
if (match.Success)
{
    Console.WriteLine(match.Value);
}

答案 2 :(得分:0)

string line = "1 2 3 4 5 6";
string[] array = line.split[' '];

如果您想确保数组元素是整数,您可以迭代每个元素并执行int.TryParse

for(int i = 0; i < array.Length; i++)
{
    int tmp;
    bool isInteger = int.TryParse(array[i], out tmp);
}

修改

首先,你可以做一个简单的检查,看看这行是否在数字之间包含多个空格字符。

if(line.Contains("  "))
{
    return false;
}

然后,拆分成数组并检查每个成员是否为整数。