C# zwei Strings vergleichen?
Hey
Ich möchte in C# zwei Strings Vergleichen:
abcdefgh
abcdefhh
Dabei soll gezählt werden wie viele der Buchstabten verschieden sind. In diesem FAll 1ner
1 Antwort
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.
Wait. Man kann einen Index auf ein String anwenden? also abc[1] = b?
Das machts einfacher... Danke!