public string PaddingLogic(string input) { if (this.Mode == ToggleMode.NotSet) { this.Mode = this.GetToggleMode(input); } return(PaddingCommand.PaddingLogic(input, this.Mode)); }
internal static string RemoveDoubling(string input) { var surrounded = SurroundCommand.IsSurrounded(input); var stringToAdjust = input; if (surrounded) { stringToAdjust = SurroundCommand.RemoveSurrounds(input); } var padded = PaddingCommand.IsPadded(stringToAdjust); if (padded) { stringToAdjust = PaddingCommand.PaddingLogic(stringToAdjust, ToggleMode.Reverse); } var letters = stringToAdjust.GetGraphemeClusters().ToList(); var result = new StringBuilder(); var i = 0; while (i < letters.Count) { result.Append(letters[i]); if (char.IsLetter(letters[i][0])) { i += 2; } else { ++i; } } var resultString = result.ToString(); if (padded) { resultString = PaddingCommand.PaddingLogic(resultString, ToggleMode.Apply); } if (surrounded) { resultString = SurroundCommand.SurroundLogic(resultString, ToggleMode.Apply); } return(resultString); }