Feedback

C# - String durchsuchen: Letztes Vorkommen vor...

Veröffentlicht von am 19.08.2015
(0 Bewertungen)
Die String-Klasse bietet diverse Erweiterungsmethoden bezüglich der Index-Bestimmung von Teilstrings an. Diese Methode erweitert das Repertoire um eine Methode die das letzte Vorkommen eines Teilstrings vor einem bestimmten Index findet.
Die Methode ist als Erweiterung für System.String implementiert und funktioniert auch in einer PCL.

Benötigter Namespace
System
GFU-Schulungen  [Anzeige]

C# 2017/2015/2013 Grundlagen

Nach Abschluss des Kurses sind Ihnen die Datentypen und Klassenbibliotheken von C# bekannt. Außerdem sind Sie in der Lage, mit Variablen umzugehen und deren Typen zu konvertieren. Sie definieren Namespaces und setzen diese ein, Sie erstellen eigene Klassen  und bauen Trouble Shooting ein.

VB.NET 2017/2015/2013 Einführung

Das Seminar befähigt Sie zur eigenständigen Entwicklung von anwenderorientierten Programmen in VB.NET, worin auch der Einsatz von Datenbanken enthalten ist.

/// <summary>
/// Ermittelt das letzte Vorkommen einer Teilzeichenfolge, dessen Index vor oder bei einem bestimmten Index liegt.
/// </summary>
/// <param name="s">Die zu durchsuchende Zeichenfolge.</param>
/// <param name="value">Die zu suchende Zeichenfolge.</param>
/// <param name="untilIndex">Der Index ab dem die Suche abgebrochen werden soll.</param>
/// <returns>Der Index des letzten Vorkommens von <paramref name="value"/> vor <paramref name="untilIndex"/>.</returns>
public static int LastIndexUntil(this string s, string value, int untilIndex)
{
    if (s == null)
        throw new ArgumentNullException("s", "s cannot be null");
    if (value == null)
        throw new ArgumentNullException("value", "value cannot be null");
    if (untilIndex < 0)
        throw new ArgumentOutOfRangeException("untilIndex", "untilIndex cannot be negative");

    //for the case that untilIndex is greater than s.Length or value does not fit behind untilIndex into s
    untilIndex = Math.Min(untilIndex, s.Length -  value.Length); 

    if (value == "")
    {
        if (s.Length == 0)
            return 0;
        else
            return untilIndex;
    }

    var chars = s.ToCharArray();
    var c = value.ToCharArray();

    for (int i = untilIndex; i >= 0; --i)
    {
        if (chars[i] == c[0])
        {
            bool found = true;
            for (int j = 1; j < c.Length; ++j)
            {
                if (chars[i + j] != c[j])
                {
                    found = false;
                    break;
                }
            }
            if (found)
                return i;
        }
    }
    return -1;
}
Abgelegt unter String, Index, Until, Find, Analyze, Parse.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!