如何從兩個輸入之間用空格分隔的用戶獲得輸入? 我試着用Conver.ToInt32(Console.ReadLine())來做這件事,但它顯示格式異常。 請告訴用戶是否有其他方式獲取輸入。 請幫忙! 謝謝你閱讀我的問題。如何從兩個輸入被空格分隔的用戶獲得輸入?
例如: 輸入:輸入是以上述格式。 值10 & 2應該存儲在不同的變量中。
如何從兩個輸入之間用空格分隔的用戶獲得輸入? 我試着用Conver.ToInt32(Console.ReadLine())來做這件事,但它顯示格式異常。 請告訴用戶是否有其他方式獲取輸入。 請幫忙! 謝謝你閱讀我的問題。如何從兩個輸入被空格分隔的用戶獲得輸入?
例如: 輸入:輸入是以上述格式。 值10 & 2應該存儲在不同的變量中。
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()
和拆分結果字符串得到像其他人建議的數字
希望這會有所幫助。
string[] inputs =TextBoX1.Text.Split(" ");
String first = inputs[0].ToString();
String second = inputs[1].ToString();
您可以擴展您的答案以包含你的代碼的解釋?它比讀者想象的更能幫助讀者。 – gunr2171 2014-09-04 18:26:52
因爲我沒有看到你試過的實際代碼我可以假設你不喜歡的東西:
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需要的大小,但是列表更舒適。
以字符串形式讀取輸入內容並將其與空格分開。 – 2014-09-04 11:25:46
我認爲問題沒有得到用戶的輸入,但將其解析爲兩個變量? – Chris 2014-09-04 11:26:03
[C#將字符串拆分爲另一個字符串]的可能重複(http://stackoverflow.com/questions/2245442/c-sharp-split-a-string-by-another-string) – DMAN 2014-09-04 11:26:08