/// <summary> /// Removes empty strings /// </summary> /// <param name="str"></param> /// <param name="options"></param> /// <returns></returns> public static IEnumerable <string> Split(string str, SplitOptions options = null) { string[] split = str.Split(' ', '\n', '\t', '\r'); var withoutEmpty = split.Where(i => !string.IsNullOrEmpty(i)); return(ProcessOptions(withoutEmpty, options == null ? DefaultOptions : options)); }
public void Index(string stringToIndex, T item, int importance = 0, SplitOptions splitOptions = null) { if (string.IsNullOrWhiteSpace(stringToIndex)) { return; } foreach (var word in Splitter.Split(stringToIndex, splitOptions)) { put(new IndexedWord <T>(word, importance, item)); } }
private static IEnumerable <string> ProcessOptions(IEnumerable <string> splitWithoutEmpties, SplitOptions options) { foreach (var s in splitWithoutEmpties) { if (s.Equals("&")) { yield return("and"); continue; } if (s.Equals(".") || s.Equals(",")) { continue; } else { yield return(s); } if (options.SplitUnderscores) { string[] subSplit = s.Split('_'); foreach (var subS in subSplit.Where(i => !string.IsNullOrEmpty(i))) { yield return(subS); } } } }