我正在構建基於控制檯的彩票遊戲,用戶輸入他/她的數字選擇。我需要檢查數字是在1-39之間,用戶輸入了7個有效數字。我想以用戶在控制檯中將它們寫入一行字符串的方式執行此操作,並且程序找到任何空格,逗號或其他非數字字符並忽略它們。其餘的彩票號碼應存儲在整數數組中,不包含任何重複項。我想從字符串搜索整數並將它們存儲在數組中
我目前的版本非常糟糕,因爲如果用戶編寫例如數字之間有2個空格。
Console.WriteLine("Choose 7 numbers (1-39) by pressing ENTER after every number:");
string userRow = Console.ReadLine();
int[] userLottery = new int[7];
for(int i = 0; i < userLottery.Length; i++)
{
userLottery = userRow.Split(',', '.', ' ').Select(x => int.Parse(x)).ToArray();
if(userLottery[i] > 7)
{
Array.Resize(ref userLottery, 7);
}
}
我想以更方便的方式替換目前的方式,其中用戶錯誤的數量不會影響程序。如果用戶寫入多個空格,則會發生錯誤。
我試圖建立正則表達式來處理這些情況,但我不能用它來將它們存儲到數組中。
string userChoice = Console.ReadLine();
MatchCollection userNumbers = Regex.Matches(userChoice, @"\d+");
int[] userRow;
for(int i = 0; i < userNumbers.Count; i++)
{
userRow[i] = userNumbers[i].Value;
}
,說字符串不能轉換成int [] ...
所以它的工作原理,但脆:做什麼,你告訴用戶下面?什麼是問題? –
你的具體問題是什麼? – Coops
我想以更方便的方式替換我目前的用戶錯誤數量不會影響程序的方式。如果用戶寫入多個空格,則會發生錯誤。並 – johnnyCasual