Сделать проверку ввода на число и математические знаки - C#
Формулировка задачи:
Смысл в том, что в консоль пишется выражение (Например: (2+2)*2) и считается. Нужно сделать так, чтобы писать можно было только числа и мат символы (/,*,-,+ и т.п.). Как сделать проверку на числа я знаю, а как туда присобачить символы не знаю.
Вот весь код, вдруг поможет.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string x; do { Console.WriteLine("Введите: \n 1 - Начать вычисления \n 2 - Выход"); x = Console.ReadLine(); Console.Clear(); switch(x){ case "1": Console.WriteLine("Введите выражение: "); String s = Console.ReadLine(); Console.WriteLine("{0} = {1}", s, Evaluate(s)); Console.ReadKey(); Console.Clear(); break; case "2": break; default: Console.WriteLine("Неверное значение"); Console.ReadKey(); Console.Clear(); break; } } while (x != "2"); } public static object Evaluate(string s) { using (DataTable eval = new DataTable()) return eval.Compute(s, null); } } }
Решение задачи: «Сделать проверку ввода на число и математические знаки»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Text.RegularExpressions; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string x; do { Console.WriteLine("Введите: \n 1 - Начать вычисления \n 2 - Выход"); x = Console.ReadLine(); Console.Clear(); switch (x) { case "1": Console.WriteLine("Введите выражение: "); String s = Console.ReadLine(); if (Regex.IsMatch(s, @"^[()+\-*/. \d\s.]*$")) Console.WriteLine("{0} = {1}", s, Evaluate(s)); else Console.WriteLine("Неверное значение"); Console.ReadKey(); Console.Clear(); break; case "2": break; default: Console.WriteLine("Неверное значение"); Console.ReadKey(); Console.Clear(); break; } } while (x != "2"); } public static object Evaluate(string s) { using (DataTable eval = new DataTable()) return eval.Compute(s, null); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д