string s = "Gewerbegebiet Waldstraße"; //other possible input "Waldstrasse"
int iFoundStart = s.IndexOf("strasse", StringComparison.CurrentCulture);
if (iFoundStart > -1)
s = s.Remove(iFoundStart, 7);
Ich verwende CultureInfo 1031 (deutsch).ArgumentOutOfRangeException mit IndexOf mit CultureInfo 1031
IndexOf passt 'straße' oder 'strasse' mit definierter 'strasse' und gibt 18 als Position zurück.
Weder Entfernen noch Ersetzen haben eine Überladung zum Einstellen einer Kultur.
Wenn ich 6 Zeichen mit Entfernen lösche, wird 1 Zeichen übrig bleiben, wenn Eingabezeile 'Straße' und 'Straße' funktionieren. Wenn Eingabe-String ist 'Straße' und ich 7 Zeichen entfernen, bekomme ich ArgumentOutOfRangeException.
Gibt es eine Möglichkeit, die gefundene Zeichenfolge sicher zu entfernen? Jede Methode, die den letzten Index von IndexOf bietet? Ich trat näher in IndexOf und es ist nativen Code unter der Haube wie erwartet - also keine Möglichkeit, etwas eigenes zu tun ...
Wie wäre es mit einem leeren String zu ersetzen? 's = s.Replace (" strasse "," ");' – dotctor
@dotctor Ich glaube, das OP sagt, dass 'string.Replace' die Kultur nicht berücksichtigt, also passt" ss "nicht zu" ß ". – juharr
Ich laufe auf 'en-US' und habe dieses Problem.die Sache ist IndexOf verhält sich anders. –