2013-08-27 2 views
0

Какая функция будет вводить строку, которая может содержать числа или умножение двух чисел с использованием символа 'x' в качестве оператора?Функция для вычисления произведения чисел с помощью оператора 'x'?

Например:

  • Если вход "6 x 11" то выход должен быть 66. ..
  • Если вход "78 ", то выход должен быть 78
+0

: Ваша проблема решена? – Sumeshk

ответ

0

Ну, вы могли бы использовать несколько методов System.String для достижения этой цели Что вы пробовали

Один из вариантов:

public int GetValue(string input) 
{ 
    int output = 0; 

    if (input.Contains("x")) 
    { 
     string[] a = input.Split('x'); 
     int x = int.Parse(a[0]); 
     int y = int.Parse(a[1]); 

     output = x * y; 
    } 
    else 
    { 
     output = int.Parse(input); 
    } 
    return output; 
} 

конечно, это игнорирует проверку входных данных.

+0

Как насчет нечувствительности к регистру? – CJ7

+0

@ CJ7 Вы можете изменить строку на верхний или нижний регистр с помощью методов .ToUpper или .ToLower. – Inisheer

0

Проверьте это

 public int GetProduct(string input) 
     { 
      int result = 1; 
      input = input.ToUpper(); 

      if (input.Contains("X")) 
      { 
       string[] array = input.Split('x'); 
       for (int index = 0; index < array.Length; index++) 
       { 
        if (IsNumber(array[index])) 
        { 
         result = result * Convert.ToInt32(array[index]); 
        } 
       } 
      } 
      else 
      { 
       result = Convert.ToInt32(input); 
      } 
      return result; 
     } 

     bool IsNumber(string text) 
     { 
      Regex regex = new Regex(@"^[-+]?[0-9]*\.?[0-9]+$"); 
      return regex.IsMatch(text); 
     }