从控制台读取一行中的数字,用空格分隔
我有一项任务是在一行中读取给定的数字,用控制台的空格分隔。
当我在一个单独的行( 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