StringArray error

本文关键字:error StringArray | 更新日期: 2023-09-27 18:23:53

我刚刚启动C#(使用CodeEval),但在执行程序时,StringArray有点问题。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CodeEval
{
    class Program
    {
        public static void      fizzBuzz(int x, int y, int n)
        {
            List<string>        list = new List<string>();
            int                 i = 1;
            while (i <= n)
            {
                if (i % x == 0 && i % y != 0)
                    list.Add("F");
                else if (i % x != 0 && i % y == 0)
                    list.Add("B");
                else if (i % x == 0 && i % y == 0)
                    list.Add("FB");
                else
                    list.Add(i.ToString());
                i++;
            }
            Console.WriteLine(string.Join(" ", list));
        }
        static int              Main(string[] args)
        {
            try
            {
                using (StreamReader file = new StreamReader("test1.txt"))
                {
                    while (!file.EndOfStream)
                    {
                        string[] line = file.ReadLine().Split(' ');
                        fizzBuzz(Convert.ToInt32(line[0]), Convert.ToInt32(line[1]), Convert.ToInt32(line[2]));
                    }
                }
            }
            catch (Exception e)
            {
                Console.Write("Le fichier ne peut pas être lu: ");
                Console.WriteLine(e.Message);
            }
            Console.ReadLine();
            return (0);
        }
    }
}

我的错误在这一行

fizzBuzz(Convert.ToInt32(line[0]), Convert.ToInt32(line[1]), Convert.ToInt32(line[2]));

test1.txt文件中包含以下内容:

3 5 10
2 7 15

当我执行程序时,它适用于第一行,但随后他尝试了第二行:"输入字符串格式不正确"

第一次怎么行,第二次不行?需要帮助来理解我的问题。

谢谢大家。

StringArray error

在代码中做一点保护来阻止不需要的空白。

while (!file.EndOfStream)
{
   String line = file.ReadLine();
   if (String.IsNullOrWhiteSpace(line))
       continue;
   string[] tokens = line.Split(new char[] {' '},StringSplitOptions.RemoveEmptyEntries);
   fizzBuzz(Convert.ToInt32(tokens[0]), Convert.ToInt32(tokens[1]), Convert.ToInt32(tokens[2]));
}