如何从用户那里获得输入,其中两个输入用空格分隔

本文关键字:输入 两个 分隔 空格 用户 那里 | 更新日期: 2023-09-27 18:20:34

如果两个输入用空格分隔,我如何从用户那里获得输入?我试着用Convert.ToInt32(Console.ReadLine())来做这件事;但它显示出格式异常。请告知是否有其他方式可以从用户那里获得输入。请帮忙!谢谢你阅读我的问题。

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

如何从用户那里获得输入,其中两个输入用空格分隔

string[] inputs =TextBoX1.Text.Split(" ");
String first = inputs[0].ToString();
String second = inputs[1].ToString();
string[] inputs =Console.ReadLine().Split(null);
int input1=TryParse(inputs[0]);
int input2=TryParse(inputs[1]);

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(),并分割得到的字符串来获得一些数字,就像其他建议的一样

希望这能有所帮助。

因为我看不到你尝试的实际代码,我只能假设你做了一些类似的事情:

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

实际输入是"102",这是一个字符串。该方法尝试将空白空间转换为内部时发生错误

您需要将输入保存为字符串变量,然后用空格分隔字符串变量作为分隔符。您可以将结果保存为字符串数组(string[]),然后将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需要的大小,但列表更方便。