string s = "Gewerbegebiet Waldstraße"; //other possible input "Waldstrasse"
int iFoundStart = s.IndexOf("strasse", StringComparison.CurrentCulture);
if (iFoundStart > -1)
s = s.Remove(iFoundStart, 7);
私はCultureInfo 1031(ドイツ語)を実行しています。IndexOfをCultureInfoで使用するArgumentOutOfRangeException 1031
IndexOfは 'strasse'と 'strasse'を 'strasse'でマッチさせ、positionとして18を返します。
除去も置換も培養物を設定するための負荷がありません。
削除文字列を使用して6文字を削除すると、入力文字列が「strasse」で「straße」が機能する場合は残ります。 input-stringが 'straße'で、7個の文字を削除した場合、私はArgumentOutOfRangeExceptionを取得します。
見つかった文字列を安全に削除する方法はありますか? IndexOfの最後のインデックスを提供する任意のメソッド?私はIndexOfに近づき、期待通りにネイティブコードになっています。何か独自のことを行う方法はありません。
空の文字列に置き換えるのはどうですか? '' ss = s.Replace( "strasse"、 ""); ' – dotctor
@dotctor私はOPが' string.Replace'は文化を考慮しないと言っていると信じているので、 "ss"は "ß " – juharr
Imは 'en-US'で動作し、この問題が発生しました。IndexOfは異なる動作をします。 –