2013-02-22 43 views
0

如何在C#中的控制檯應用程序中分隔一組數字,而不是要求用戶輸入每個單獨的數字?例如。而不是做這個...以C#分隔用戶輸入號碼

 double first, second, third, fourth; 

     Console.Write("Please enter first digit: "); 
     first = Convert.ToDouble(Console.ReadLine()); 
     Console.Write("Please enter second digit: "); 
     second = Convert.ToDouble(Console.ReadLine()); 
     Console.Write("Please enter third digit: "); 
     third = Convert.ToDouble(Console.ReadLine()); 
     Console.Write("Please enter fourth digit: "); 
     fourth = Convert.ToDouble(Console.ReadLine()); 
+1

如果它只有一個數字,那麼你可以使用一個字符串,它是一個字符數組。我懷疑他們只會是個位數。 2美分。 – 2013-02-22 04:13:23

回答

2

利用array,它可以幫助你更快的讀/寫操作到變量

double[] numbers = new double[4]; 

    for (int i = 0; i < 4; i++) 
    { 
     Console.WriteLine("Enter {0} of 4 Number : ", i + 1); 
     numbers[i] = Convert.ToDouble(Console.ReadLine()); 
    } 

    // numbers[0] = first 
    // numbers[1] = second 
    // numbers[2] = third 
    // numbers[3] = fourth 

如果你真的想用四個變量的話,這會是最短的方式:

double first, second, third, fourth; 

    for (int i = 1; i <= 4; i++) 
    { 
     Console.WriteLine("Enter a number : "); 
     double input = Convert.ToDouble(Console.ReadLine()); 
     switch (i) 
     { 

      case 1: 
       first = input; 
       break; 

      case 2: 
       second = input; 
       break; 

      case 3: 
       third = input; 
       break; 
      case 4: 
       fourth = input; 
       break; 

     } 
    } 
5

你可以讓他們一次輸入所有的數字,並帶有某種分隔符(在這個例子中是空格)。

Console.Write("Please enter a bunch of digits separated by a space: "); 
var allDigits = Console.ReadLine().Split(' '); 
Double[] digits = allDigits.Select(d => Covert.ToDouble(d)).ToArray(); 

如果你的要求allDigit使用IEnumerable<string>.Take(4)

Console.Write("Please enter a bunch of digits separated by a space: "); 
var allDigits = Console.ReadLine().Split(' ').Take(4); 
Double[] digits = allDigits.Select(d => Covert.ToDouble(d)).ToArray(); 
+0

你不需要拆分(''),只需拆分() – 2013-02-22 04:16:22

+0

@CuongLe,這足夠了 - 但作爲一個例子,我試圖明確如何更換分隔符。 – PinnyM 2013-02-22 04:21:54

1

這裏限於4 inputs限制的一種方式:

Console.Write("Please enter numbers, comma-separated: "); 
var numbers = Console.ReadLine() 
    .Split(',') 
    .Select(x => Double.Parse(x.Trim())) 
    .ToList(); 

在現實生活中的代碼,雖然它可能會更好使用TryParse並將錯誤返回給用戶。