我如何从两个输入被空格分隔的用户那里获得输入? 我尝试使用Conver.ToInt32(Console.ReadLine());但它显示格式异常。 请告诉我们是否有其他方式从用户那里获得输入。 请帮忙! 感谢您阅读我的问题。
例: 输入: 10 2 输入采用上述格式。 价值10& 2应存储在不同的变量中。
答案 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需要的大小,但列表更舒适。