从控制台读取一行中的数字,用空格分隔

我有一项任务是在一行中读取给定的数字,用控制台的空格分隔。

当我在一个单独的行( Console.ReadLine() )上读取每个数字时,我知道如何做到这一点,但是当数字在同一行时,我需要帮助知道如何做到这一点。

您可以使用String.Split 。 您可以提供要用于将字符串拆分为多个的字符。 如果没有提供,则所有空格都被假定为拆分字符(所以换行符,制表符等):

 string[] tokens = line.Split(); // all spaces, tab- and newline characters are used 

或者,如果您只想使用空格作为分隔符:

 string[] tokens = line.Split(' '); 

如果要将它们解析为int ,可以使用Array.ConvertAll()

 int[] numbers = Array.ConvertAll(tokens, int.Parse); // fails if the format is invalid 

如果要检查格式是否有效,请使用int.TryParse

您可以使用String.Split()拆分该行:

 var line = Console.ReadLine(); var numbers = line.Split(' '); foreach(var number in numbers) { int num; if (Int32.TryParse(number, out num)) { // num is your number as integer } } 

您可以使用Linq 读取行然后拆分,最后将每个项目转换为整数:

  int[] numbers = Console .ReadLine() .Split(new Char[] {' '}, StringSplitOptions.RemoveEmptyEntries) .Select(item => int.Parse(item)) .ToArray(); 

您只需要分割输入的数据。

 string numbersLine = console.ReadLine(); string[] numbers = numbersLine.Split(new char[] { ' '}); // Convert to int or whatever and use