我怎样才能从两个输入用空格分隔的用户那里得到输入?

时间:2014-09-04 11:23:32

标签: c#

我如何从两个输入被空格分隔的用户那里获得输入? 我尝试使用Conver.ToInt32(Console.ReadLine());但它显示格式异常。 请告诉我们是否有其他方式从用户那里获得输入。 请帮忙! 感谢您阅读我的问题。

例: 输入: 10 2 输入采用上述格式。 价值10& 2应存储在不同的变量中。

4 个答案:

答案 0 :(得分:1)

string[] inputs =TextBoX1.Text.Split(" ");
String first = inputs[0].ToString();
String second = inputs[1].ToString();

答案 1 :(得分:0)

string[] inputs =Console.ReadLine().Split(null);

int input1=TryParse(inputs[0]);
int input2=TryParse(inputs[1]);

答案 2 :(得分:0)

Console.ReadLine()只会在用户输入换行符后返回值(IE。按回车)。

为了获得您所追求的目标,您可以考虑使用Console.ReadKey()Console.Read()来获取个性化字符。

这样你的代码看起来像:

public int GetNextNumber()
{
    char nextChar;
    string numberString = string.Empty;
    while (!char.IsWhiteSpace(nextChar = (char)Console.Read())
        numberString += nextChar;
    int result;
    if (!int.TryParse(numberString, out result))
        throw new InvalidCastException("Specified string is not an integral");
    return result;
}

然后,当用户输入时,您可以使用该方法从控制台读取每个单独的数字。 您还可以执行Console.ReadLine()并将结果字符串拆分以获得与其他一些建议的数字相同的数字

希望这有帮助。

答案 3 :(得分:0)

因为我没有看到您尝试的实际代码,所以我可以假设你做了类似的事情:

int input = Convert.ToInt32(Console.ReadLine());

,实际输入为“10 2”,这是一个字符串。 当方法尝试将空白空间转换为int时发生错误。

您需要将输入保存为字符串变量,然后将带有空格的字符串变量拆分为分隔符。您可以将结果保存为字符串数组(string []),然后将字符串[]的每个数组元素转换为int。

阅读代码输入:

string input = Console.Readline();

代码的拆分方法:

string[] stringArray= input.Split(' ');

将每个字符串转换为代码的int:

List<int> integerList = new List<int>();

foreach (string str in array)
{
    integerList.Add(Convert.ToInt32(str));
}

请注意,这对于包含2个以上数字的输入也适用,例如“10 2 17 3 19 27”,并且每个输入部分都不需要自己的变量,因为您将每个值添加到列表中。为何列出清单?因为大小是动态的。您的问题也适用于数组而不是列表,因为在您分割字符串时,您知道intArray需要的大小,但列表更舒适。