使用split方法在一行中读取多个整数时出错

时间:2017-05-02 22:48:45

标签: c# split

我在读取用户的整数时使用Split时收到错误

 int[] a = new int[s];
        for (i = 0; i < s; i++)
        {
            a[i] = Int32.Parse(Console.ReadLine().Split(' '));
        }

你能帮我解决一下如何使用Split

3 个答案:

答案 0 :(得分:3)

由于split返回一个数组,每次你需要i'ed时,你应该改变它:

 int[] a = new int[s];
 string[] input = Console.ReadLine().Split(' ');

 for (i = 0; i < s; i++)
 {
    a[i] = Int32.Parse(input[i]);
 }

你需要只读一次btw输入。 像 @ loneshark99 一样,使用TryParse()会更好。因为它返回一个布尔值,你可以检查输入是否确实是整数。如果你只是使用Parse并且它们不是整数,那么它会引发异常。

使用TryParse()的代码:

 int[] a = new int[s];
 string[] input = Console.ReadLine().Split(' ');

 for (i = 0; i < s; i++)
 {
    if (Int32.TryParse(input[i], out a[i])) 
    {
        //successfully parsed
    }
 }

if语句不是必需的,只是指出如何使用TryParse。

答案 1 :(得分:3)

LINQ在这里真的可以帮到你:

int[] a = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();

答案 2 :(得分:0)

我们可以将输入作为字符串优先

   string[] array_temp = Console.ReadLine().Split(' ');

然后将数组转换为Int

   int[] array = Array.ConvertAll(array_temp,Int32.Parse);