string s = "Gewerbegebiet Waldstraße"; //other possible input "Waldstrasse"
int iFoundStart = s.IndexOf("strasse", StringComparison.CurrentCulture);
if (iFoundStart > -1)
s = s.Remove(iFoundStart, 7);
Sono in esecuzione CultureInfo 1031 (tedesco).ArgumentOutOfRangeException using IndexOf con CultureInfo 1031
IndexOf corrisponde a "straße" o "strasse" con "strasse" definito e restituisce 18 come posizione.
Né Rimuovi né Sostituisci ha alcun sovraccarico per l'impostazione di una coltura.
Se rimuovo 6 caratteri utilizzando Rimuovi 1 carattere sarà lasciato se input-string è 'strasse' e 'straße' funzionerà. Se input-string è 'straße' e rimuovo 7 caratteri ottengo ArgumentOutOfRangeException.
C'è un modo per rimuovere in modo sicuro la stringa trovata? Qualche metodo che fornisce l'ultimo indice di IndexOf? Mi sono avvicinato a IndexOf ed è il codice nativo sotto il cofano come previsto - quindi non c'è modo di fare qualcosa di proprio ...
Come sostituire con una stringa vuota? 's = s.Replace (" strasse "," ");' – dotctor
@dotctor Credo che l'OP stia dicendo che 'string.Replace' non tiene conto della cultura, quindi" ss "non corrisponde" ß ". – juharr
Im in esecuzione su 'en-US' e ha ottenuto questo problema. La cosa è che IndexOf si comporta diversamente. –