Usage
Various short and fairly self-explanatory string helpers.
Snippets
using System; using System.Drawing; using System.Security.Cryptography; using System.Text; using System.Text.RegularExpressions; namespace My.Helpers { public class StringHelpers { public static int Count(string text, string pattern) { // Count how many occurrences of 'pattern' there are in 'text'. int result = 0; try { int start = 0; while (true) { int index = text.IndexOf(pattern, start); if (index < 0) break; result++; start = index + pattern.Length; } } catch (System.Exception Ex) { Log.WriteException("StringHelpers", "Count", Ex); } return result; } public static string Get(string text, string defaultValue) { if (!String.IsNullOrWhiteSpace(text)) return text; else return defaultValue; } public static string GetFirstLine(string text) { string result = ""; if (!String.IsNullOrWhiteSpace(text)) { int index = text.IndexOf(Environment.NewLine); if (index < 0) result = text; else result = text.Substring(0, index); } return result; } public static string GetMD5Hash(string text) { var x = new MD5CryptoServiceProvider(); byte[] bs = Encoding.UTF8.GetBytes(text); // Compute the MD5 hash value. bs = x.ComputeHash(bs); // Convert it to a hex string. var s = new System.Text.StringBuilder(); foreach (byte b in bs) s.Append(b.ToString("x2").ToLower()); return s.ToString(); } public static string RegexExtract(string text, string pattern) { // Return the first part of 'text' that matches 'pattern' (if any), otherwise an empty string. try { Regex rx = new Regex(pattern); Match match = rx.Match(text); if (match.Success) return match.Value; } catch (System.Exception Ex) { Log.WriteException("ServiceTester", "RegexMatch", Ex); } return ""; } public static bool RegexMatch(string text, string pattern) { // Does 'text' match 'pattern'? try { Regex rx = new Regex(pattern); // , RegexOptions.Compiled | RegexOptions.IgnoreCase); return rx.IsMatch(text); } catch (Exception Ex) { Log.WriteException("ServiceTester", "RegexMatch", Ex); } return false; } public static string Repeat(char ch, int count) { return new String(ch, count); } public static string Repeat(string text, int count) { var builder = new StringBuilder(); for (int i = 0; i < count; i++) builder.Append(text); return builder.ToString(); } public static string Tabify(string text, int tabWidth) { // Replaces each sequence of 'tabWidth' spaces with a tab. // Ignores smaller numbers of spaces (similar to VS2010). if (String.IsNullOrWhiteSpace(text)) return ""; string spaces = new String(' ', tabWidth); return text.Replace(spaces, "\t"); } public static string Untabify(string text, int tabWidth) { if (String.IsNullOrWhiteSpace(text)) return ""; string spaces = new String(' ', tabWidth); return text.Replace("\t", spaces); } } }
No comments:
Post a Comment