2014-01-24 20 views
8

Ich möchte das Zeichen an einer bestimmten Position einer sehr großen Zeichenfolge finden. Allerdings kann ich die Methode charAt() nicht verwenden, da der Bereich den von int überschreitet. Gibt es eine Feinabstimmung?String CharAt-Methode mit langen

+3

Ihre Zeichenkette ist über 2 Milliarden Zeichen lang? – rgettman

+0

yeah .. Ich möchte Zeichen an der Position finden '2298867968' – user2133404

+0

wahrscheinlich am besten, um es in kleinere Strings zu brechen mit –

Antwort

13

In Java werden Strings von einem Zeichenarray unterstützt. Die theoretische Größe eines Arrays ist durch den maximalen Wert von int begrenzt, so dass es unmöglich ist, einen String mit mehr als 2 Zeichen zu beginnen.

Um dieses Problem zu umgehen, können Sie eine eigene String-Klasse erstellen, die mehrere Arrays oder Strings als Speicher verwendet.

0

Würde nur ein kürzerer Teilstring von der großen Zeichenfolge und Zugriff auf die entsprechende Position helfen?

+0

Nein, es ist eine dynamisch generierende Zeichenfolge basierend auf einer vorher festgelegten Position. Die Position selbst liegt außerhalb des ganzzahligen Bereichs. – user2133404

+0

Gut, aber wenn Sie diese Position kennen, können Sie die ersten x Zeichen abschneiden und dann auf die Position minus x zugreifen – fedorSmirnov

0

Da der String intern durch ein Array von Zeichen dargestellt wird, darf seine maximale Länge nicht größer als die Größe von int sein. Also in erster Linie können Sie keine Zeichenfolge haben, die den Bereich von int überschreitet.

Verwandte Themen