#c_sharp #консоль
Допустим, пользователь вводит в консоль ряд некоторых чисел. Как сделать, чтобы ему нужно было вводить их через пробел, и каждое из чисел считывалось как отдельное? Например я ввожу: "6 0 73 15", нажимаю enter, и далее мне нужно с этим набором чисел произвести некоторые действия.
Ответы
Ответ 1
Попробуйте так var numbers = Console.ReadLine() .Split(new[] {" "},StringSplitOptions.RemoveEmptyEntries) .Select(Int32.Parse); foreach(var n in numbers) Console.WriteLine(n); Давайте рассмотрим, что происходит: Console.ReadLine() - считывает всю строку с пробелами, что ввел юзер .Split(new[] {" "},StringSplitOptions.RemoveEmptyEntries) - разбивает считанную строку на несколько строк, используя пробел как сепаратор. То есть была строка "45 67", стало 2 строки "45", "67" .Select(Int32.Parse); - конвертирует набор строк в набор чисел. То есть были 2 строки "45", "67", стало 2 числа 45, 67 В итоге в numbers будет находится объект - перечисление чисел, которые ввел пользователь. Дальше по коду я перечисляю этот объект, чтобы вывести в консоль. foreach(var n in numbers) Console.WriteLine(n);Ответ 2
Можно и без Linq: int[] numbers = Array.ConvertAll(Console.ReadLine().Split(), int.Parse); Т.е. считываем строку с консоли Console.ReadLine(), потом методом Split() получаем из этой строки массив, при этом при отсутствии параметров в качестве разделителей будут приняты все пробельные символы. Затем метод Array.ConvertAll применяет ко всем элементам входного массива функцию, переданную вторым параметром (int.Parse), таким образом, из массива строк получается массив int
Комментариев нет:
Отправить комментарий