【问题标题】:How to read console input either space separated or newline separated in C#?如何在 C# 中读取以空格分隔或换行符分隔的控制台输入?
【发布时间】:2018-02-10 14:52:42
【问题描述】:

我的测试中提供的输入有时由 分隔,有时由\n 分隔。

我想在最后将这些输入存储在一个数组中。

示例输入:

1 2 3 4 5(空格分隔)

1\n2\n3\n4\n5(换行符分隔)

我可以Split空格分隔输入,但我不知道如何分隔换行符。

Console.WriteLine("Enter Input");
var input = Console.ReadLine();
string[] inputArray = input.Trim().Split(' ');
int[] numbers = Array.ConvertAll(inputArray, int.Parse);

【问题讨论】:

  • 请展示您尝试过的内容:stackoverflow.com/help/mcve
  • 你可以使用 string.Split(' ') 来分隔空格。
  • 我编辑了问题并提到了我如何阅读分隔的空格,我也知道如何阅读分隔的换行符,但这里对我来说的挑战是我应该如何根据输入动态处理这个问题。

标签: c# windows-console


【解决方案1】:

您可以为此使用String.Split Method (Char[])


.Split(new Char[] {' ', '\n' });

正如您在下面看到的,我已将\n 放在我的输入字符串中。如果你在分配int[] numbers 之后放置一个断点,你可以看到inputArraySplit 正确:


Console.WriteLine("Enter Input");
//var input = "1 2 3 4 5";
var input = "1\n2\n3\n4 5\n6 7 8\n9";
string[] inputArray = input.Trim().Split(new Char[] {' ', '\n' });
int[] numbers = Array.ConvertAll(inputArray, int.Parse);

[DEMO HERE]

【讨论】:

  • 嗨@Brien,谢谢你的回答,你能告诉我如何从控制台窗口读取换行符分隔的输入吗?抱歉,因为是周末,所以耽搁了。
  • @PrashantJain 您希望用户如何输入换行符?如果你试图强制它,例如:“1\n2\n3\n”,它们就会变成:“1\\n2\\n3\\n”。我想你可以先Replace()他们喜欢:string[] inputArray = input.Trim().Replace(@"\n","").Split(new Char[] {' ', '\n' });
  • 在少数挑战的测试用例中,自动化系统尝试插入一个数字,然后按 Enter 键,然后在控制台上插入下一个数字,最后自动化系统将按两次 Enter 键。跨度>
猜你喜欢
  • 2011-07-26
  • 2012-10-17
  • 2011-11-30
  • 2015-03-08
  • 2015-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多