我刚开始使用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
当我执行程序时,它适用于第一行但是他尝试了第二行:&#34;输入字符串格式不正确&#34;
第一次如何才能运作,而第二次呢? 需要帮助来理解我的问题。
谢谢大家。
答案 0 :(得分:1)
如果你的代码中有一个小小的守卫来阻止不需要的空格呢。
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]));
}