有没有更优雅的方式从输入流中读取数字?



我用Java编写了以下测试客户端代码:

public static void main(String[] args)
{
  int N = StdIn.readInt(); // Read number of sites.
  while (!StdIn.isEmpty())
  {
     int p = StdIn.readInt();
     int q = StdIn.readInt();
  }
}

在c#中:

public static void Main(string[] args)
{
   int N = Convert.ToInt32(Console.ReadLine());
   string input;
   while ((input = Console.ReadLine()) != null)
   {
       int p = Convert.ToInt32(input);
       int q = Convert.ToInt32(Console.ReadLine());
   }
}

我是c#新手。请帮帮我,有没有一种更优雅的方式来读取输入流中的数字?例如,如何在c#中更准确地模拟while (!StdIn.isEmpty()) ?

我建议使用TryParse方法而不是Convert.ToInt32,因为它在转换失败时不会抛出System.FormatException。它还返回转换操作的bool结果。

IsNullOrWhiteSpace是一种"更优雅"的检查字符串值的方式:

        int n, p, q;
        string input;
        Int32.TryParse(Console.ReadLine(), out n);            
        while (!string.IsNullOrWhiteSpace((input = Console.ReadLine())))
        {                
            Int32.TryParse(input, out p);
            Int32.TryParse(Console.ReadLine(), out q);                
        }
        Console.ReadKey();

最新更新