C# zwei Strings vergleichen?

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

Um die Zeichenketten zu vergleichen, kannst du jeweils jede einzelne Stelle miteinander vergleichen. Dazu kannst du eine Schleife verwenden, mit welcher du überprüfst, ob der Buchstabe der einen Zeichenkette an einer bestimmten Stelle mit dem Buchstaben der zweiten Zeichenkette an derselben Stelle übereinstimmt. Gibt es einen Unterschied, kannst du diesen mithilfe einer Counter-Variable vom Typ Ganzzahl registrieren.

public static int Diff(string a, string b) {
  int differences = 0;
  for (int i = 0; i < Math.Min(a.Length, b.Length); ++i) {
    if (a[i] != b[i]) {
      ++differences;
    }
  }

  differences += Math.Max(a.Length, b.Length)
      - Math.Min(a.Length, b.Length);
  return differences;
}

Wie du siehst, muss auch der Fall betrachtet werden, dass beide Zeichenketten verschieden lang sind. In diesem Fall kann man beispielsweise wie in obigem Code nur die Stellen vergleichen, die in beiden Zeichenketten vorhanden sind. Alle weiteren zusätzlichen Stellen kann man zu der Zahl der Unterschiede hinzuaddieren. Das ist jedoch Definitionssache.


NebenwirkungTod 
Beitragsersteller
 07.12.2018, 22:04

Wait. Man kann einen Index auf ein String anwenden? also abc[1] = b?

Das machts einfacher... Danke!

0