如何从用户那里获得输入,其中两个输入用空格分隔
本文关键字:输入 两个 分隔 空格 用户 那里 | 更新日期: 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需要的大小,但列表更方便。