Feedback

C# - SimplifyChars

Veröffentlicht von am 12.10.2013
(0 Bewertungen)
Diese Methoden sind in der Lage, mehrfache Vorkommen bestimmter Zeichen gegen eines zu ersetzen.

Die Methode habe ich als Erweiterung für String und StringBuilder implementiert. In der Regel ist die StringBuilder-Version schneller. Für einfache Ersetzungen reicht aber auch die String-Variante.
/// <summary>
/// Ersetzt alle doppelten Vorkommen eines Zeichens gegen eines, bis nur noch einzelne Zeichen vorkommen.
/// </summary>
/// <param name="value">Die Zeichenfolge, deren doppelten Vorkommen von <paramref name="c"/> ersetzt werden sollen.</param>
/// <param name="c">Das zu suchende, doppelt vorkommende, Zeichen.</param>
/// <returns>Eine neue <see cref="System.String"/>-Instanz, in der kein doppeltes Vorkommen von <paramref name="c"/> vorkommt.</returns>
public static string SimplifyChars(this string value, char c)
{
	string chars = string.Format("{0}{0}", c);
	string @char = c.ToString();
	while (value.IndexOf(chars) >= 0)
		value = value.Replace(chars, @char);
	return value;
}

/// <summary>
/// Ersetzt alle doppelten Vorkommen eines Zeichens gegen eines bis, nur noch einzelne Zeichen in dieser Instanz enthalten sind.
/// </summary>
/// <param name="instance">Die Instanz, deren doppelten Vorkommen von <paramref name="c"/> ersetzt werden sollen.</param>
/// <param name="c">Das zu suchende, doppelt vorkommende, Zeichen.</param>
/// <returns>Die Instanz des <see cref="System.Text.StringBuilders"/>, dessen doppelten Vorkommen von <paramref name="c"/> nun nur noch einmal vorkommt.</returns>
public static StringBuilder SimplifyChars(this StringBuilder instance, char c)
{            
	string chars = string.Format("{0}{0}", c);
	string @char = c.ToString();
	int oldlength=0;
	 while (oldlength != instance.Length) {
		 oldlength = instance.Length;
		 instance.Replace(chars, @char);
	 }
	return instance;
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!