"Der Index und die Länge müssen sich auf eine Position in der Zeichenfolge" error
Ich versuche zu extrahieren, die ersten 200 Worte eines Strings und manchmal bekomme ich die folgende Fehlermeldung:
"Index and length must refer to a location within the string. Parameter name: length"
Der code ist:
int i = GetIndex(fullarticle, 200);
string result = fullarticle.Substring(0, i);
Wie kann ich dieses Problem beheben?
- Sie sagen, Sie wollen 200 Wörter. Was passiert, wenn dein string hat weniger als 200 Wörter? Könnte man den code von GetIndex?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es sicher davon ausgehen, dass der Fehler kommt von string.Substring. Gegeben, dass Sie diese Fehlermeldung erhalten, wenn
startIndex + length > given.Length
oderstartIndex < 0
oderlength < 0
,GetIndex
ist entweder zurückgeben eines Wertes größer alsfullarticle.Length
oder eine negative Zahl. Der Fehler existiert inGetIndex
also, wenn Sie wollen, um mit dem code, den Sie haben, sollten Sie nach dem code, derGetIndex
zu erhalten, die beste Antwort.Wenn Sie sich für etwas anderes, Sie könnten versuchen, diese:
Geht es aus der Reihe, wie Ihr string ist kürzer als 200 Zeichen
Abhilfe zu schaffen, die Sie nutzen könnten
Math.Min
es holt den niedrigeren Wert zwischen string-Länge und 200.Hoffe das spart Euch etwas Zeit.
Dies ist wahrscheinlich passiert, weil der string hat weniger als 200 Wörtern, und wahrscheinlich aus
GetIndex
Gegenzug einen Wert füri
größer als die Anzahl der Zeichen infullarticle
. Als ein Beispiel für die Fehlerwirft
Wenn Ihre Absicht ist, um auf den ersten 200 Wörter in einer Zeichenfolge, würden Sie brauchen, um zu überprüfen,
Sieht aus wie ich, ist größer als der ganze fullarticle Länge. Überprüfen Sie Ihre GetIndex Funktion.