我在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())
?
答案 0 :(得分:2)
我建议使用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();