using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; namespace sharpknife.Utils { class StringUtils { public static bool Contains(string text, string value) { if (string.IsNullOrEmpty(text) || string.IsNullOrEmpty(value)) { return false; } return text.IndexOf(value, StringComparison.InvariantCultureIgnoreCase) >= 0; } public static int IndexOf(string text, string value) { if (string.IsNullOrEmpty(text)) { return -1; } return text.IndexOf(value, StringComparison.InvariantCultureIgnoreCase); } public static string Left(string text, int index) { return text.Substring(0, index + 1); } public static string GetToken(string text, string format) { if (!Contains(format, "{}")) { return null; } string[] formatTokens = format.Split(new string[] { "{}" }, StringSplitOptions.None); string leftToken = formatTokens[0]; string rightToken = formatTokens[1]; text = text.Substring(text.IndexOf(leftToken) + leftToken.Length); text = text.Substring(0, text.Length - rightToken.Length); return text; } public static string[] GetTokens(string text, string format) { if (!Contains(format, "{}")) { return null; } string debug = text; string[] formatTokens = format.Split(new string[] { "{}" }, StringSplitOptions.None); string[] tokens = new string[formatTokens.Length - 1]; for (int i = 0; i < tokens.Length; i++) { string firstToken = formatTokens[i]; string nextToken = formatTokens[i + 1]; text = text.Substring(IndexOf(text, firstToken) + firstToken.Length); int end = text.Length - (text.Length - IndexOf(text, nextToken)); tokens[i] = text.Substring(0, end); if (i + 2 == formatTokens.Length && string.IsNullOrEmpty(nextToken)) { tokens[i] = text.Substring(0); } //else //{ // int end = text.Length - (text.Length - IndexOf(text, nextToken)); // tokens[i] = text.Substring(0, end); //} //tokens[i] = text.Substring(0, end); text = text.Substring(tokens[i].Length); } //string leftToken = formatTokens[0]; //string rightToken = formatTokens[1]; //text = text.Substring(text.IndexOf(leftToken) + leftToken.Length); //text = text.Substring(0, text.Length - rightToken.Length); return tokens; } public static string CleanUri(string uri) { string cleanUri = uri; if (StringUtils.Contains(uri, "https://")) { cleanUri = uri.Substring(8); } else if (StringUtils.Contains(uri, "http://")) { cleanUri = uri.Substring(7); } return cleanUri; } public static string RemoveNewLines(string text) { string temp = text; temp = temp.Replace("\r", string.Empty); temp = temp.Replace("\n", string.Empty); return temp; } public static string RemoveQuotes(string text) { string temp = text; temp = temp.Replace("\"", string.Empty); return temp; } public static string Decode1252(string text) { Encoding utf8 = Encoding.UTF8; Encoding windows1252 = Encoding.GetEncoding(1252); byte[] bytes = windows1252.GetBytes(text); string decodedText = utf8.GetString(Encoding.Convert(windows1252, utf8, bytes)); return decodedText; } } }