Eigenartiges Problem mit LastIndexOf
lima-city → Forum → Programmiersprachen → Programmieren mit .NET & Mono
angeben
anzahl
argument
array
code
dank
eigenartigen problem
gott
index
lauten code
position
problem
rang
string
suche
suchenden strings
url
verweis
vorletzte vorkommen
zeichen
-
Hallo!
Ich stehe wieder mal vor einem äußerst eigenartigen Problem und verstehe beim besten Willen nicht was da los ist..
Ich habe einen String und will das vorletzte Vorkommen eines Zeichens herausfinden.
Das ist der Code:
int index1 = fileContent.LastIndexOf("a", StringComparison.InvariantCulture); int index = fileContent.LastIndexOf("a", 0, index1, StringComparison.InvariantCulture);
Bei index bekomme ich dann jedoch eine ArgumentOutOfRangeException.
Die Anzahl muss positiv sein und auf eine Position in der dem Zeichenfolge/Array/Auflistung verweisen.
Komisch, denn hier sind die Werte dazu:
fileContent.Length: 3944
index1: 3941
Außerdem hätte ich mir da sowieso eher eine IndexOutOfRangeException erwartet.. Welches Argument soll da bitte out of range sein?
Danke im Voraus! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo yorecords,
da die LastIndexOf-Suche von hinten nach vorne durchgeführt wird musst Du als Startindex den letzten/größten zu durchsuchenden Index angeben. Insbesondere muss der Startindex größer als die Länge des zu suchenden Strings sein.
Korrekt muss es also lauten:
int index1 = fileContent.LastIndexOf("a", StringComparison.InvariantCulture); int index = -1; if(index1 > 0) index = fileContent.LastIndexOf("a", index1-1 StringComparison.InvariantCulture);
Beitrag zuletzt geändert: 26.12.2012 0:17:29 von darkpandemic -
darkpandemic schrieb:
Hallo yorecords,
da die LastIndexOf-Suche von hinten nach vorne durchgeführt wird musst Du als Startindex den letzten/größten zu durchsuchenden Index angeben. Insbesondere muss der Startindex größer als die Länge des zu suchenden Strings sein.
Korrekt muss es also lauten:
int index1 = fileContent.LastIndexOf("a", StringComparison.InvariantCulture); int index = -1; if(index1 > 0) index = fileContent.LastIndexOf("a", index1-1 StringComparison.InvariantCulture);
Oh Gott... Vielen Dank!
Ich hab nicht gewusst dass von hinten nach vorne gesucht wird, obwohl es ja durchaus logisch ist..
Aber komisch dass ich vorher noch nie auf dieses Problem gestoßen bin..
Beitrag zuletzt geändert: 26.12.2012 14:36:45 von yorecords -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage