using System.Text.RegularExpressions;
public class ByRegexParser
public int GetDigitsCount(string input)
var regex = new Regex(@"\d");
int count = regex.Matches(input).Count;
public class ByCharParser
public int GetDigitsCount(string input)
foreach (char c in input)
var httpClient = new HttpClient();
public class ByServiceParser
public int GetDigitsCount(string input)
foreach (char c in input)
var client = new HttpClient();
HttpResponseMessage response = client
.PostAsync("http://parserService/isDigit", new StringContent(c.ToString()))
if (response.IsSuccessStatusCode)
public class DigitsCountParser
public int GetDigitsCount(string input, string type)
return new ByRegexParser().GetDigitsCount(input);
return new ByCharParser().GetDigitsCount(input);
else if (type == "service")
return new ByServiceParser().GetDigitsCount(input);
public static void Main(string[] args)
string input = "hello09";
Console.WriteLine(new DigitsCountParser().GetDigitsCount(input, type));
Console.WriteLine(new DigitsCountParser().GetDigitsCount(input, type));