我想从Console读取一个非常长的字符串,并解析为C#中的intergers。有什么好办法吗?
输入如下: 202 203 204 .. 202
它包含1000个数字。我需要输入的az数组整数。
我知道这个例子:
StringBuilder sb =new StringBuilder();
while (true) {
char ch = Convert.ToChar(Console.Read());
sb.Append(ch);
if (ch=='\n') {
break;
}
}
但有更快的方法吗?也许使用Readline()读取循环中的空格分隔符?
提前致谢
答案 0 :(得分:5)
var array = Console.ReadLine().Split().Select(int.Parse).ToArray();
答案 1 :(得分:1)
这实际上取决于你想对无效条目做些什么。
var numbers = Console.ReadLine().Split(' ')
.Where(x => { int i; return int.TryParse(x, out i);})
.Select(int.Parse).ToArray();
这将跳过非整数的条目
答案 2 :(得分:1)
使用以下代码:
var arr = Console.ReadLine().Split(' ').Select(p=>int.Parse(p) ).ToArray();
答案 3 :(得分:0)
这可以给你你想要的东西
List<int> inputs = new List<int>();
foreach(string o in inputText.Split(' '));//space character
{
bool correct = false;
//add some controls for the control if the input is correct integer
...
if(correct)
inputs.Add(Convert.ToInt32(o));
}