private void AddNewDelimiter(string delimiter) { if (!AcceptableDelimiters.Contains(delimiter)) { AcceptableDelimiters.Add(delimiter); } }
/// <summary> /// Replace the Newline (\n) delimiter with an optional argument delimiter /// </summary> /// <param name="delimiter"></param> public void ReplaceAlternativeDelimiterWithArgumentDelimiter(string delimiter) { if (AcceptableDelimiters.Contains(@"\n")) { AcceptableDelimiters.Remove(@"\n"); } AddNewDelimiter(delimiter); }
/// <summary> /// Interprets a formatted delimited string with config data into an object for use by the calculator /// </summary> /// <param name="userInput">a formatted delimited string</param> /// <returns>An object representing the data in the userInput</returns> public CalculatorInput InterpretCalculatorInput(string userInput) { CalculatorInput calculatorInput = new CalculatorInput() { }; //Interpret the possible delimiters in the input string userInput = InterpretCustomDelimiters(userInput); //Split the string by all of the acceptable delimiters List <string> splitUserInput = userInput.Split(AcceptableDelimiters.ToArray(), StringSplitOptions.None).ToList(); //Replace invalid entries with 0 calculatorInput.Numbers = splitUserInput.Select(x => int.TryParse(x, out int num) ? num : 0).Where(x => x <= UpperBound).ToList(); return(calculatorInput); }