我在读取用户的整数时使用Split
时收到错误
int[] a = new int[s];
for (i = 0; i < s; i++)
{
a[i] = Int32.Parse(Console.ReadLine().Split(' '));
}
你能帮我解决一下如何使用Split
。
答案 0 :(得分:3)
由于split返回一个数组,每次你需要i'ed时,你应该改变它:
int[] a = new int[s];
string[] input = Console.ReadLine().Split(' ');
for (i = 0; i < s; i++)
{
a[i] = Int32.Parse(input[i]);
}
你需要只读一次btw输入。 像 @ loneshark99 一样,使用TryParse()会更好。因为它返回一个布尔值,你可以检查输入是否确实是整数。如果你只是使用Parse并且它们不是整数,那么它会引发异常。
使用TryParse()的代码:
int[] a = new int[s];
string[] input = Console.ReadLine().Split(' ');
for (i = 0; i < s; i++)
{
if (Int32.TryParse(input[i], out a[i]))
{
//successfully parsed
}
}
if语句不是必需的,只是指出如何使用TryParse。
答案 1 :(得分:3)
LINQ在这里真的可以帮到你:
int[] a = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
答案 2 :(得分:0)
我们可以将输入作为字符串优先
string[] array_temp = Console.ReadLine().Split(' ');
然后将数组转换为Int
int[] array = Array.ConvertAll(array_temp,Int32.Parse);