Substring - String index out of range

stoi

Mitglied
Hallo,

ich benutze Substring um eine ausgelesene Zeile zu splitten.

Java:
package filereader;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Test {
	public static void Test(){
		try {
			BufferedReader in = new BufferedReader(new FileReader("ALL4500.txt"));
			String zeile = null;
			String Datum = "";
			String Sensor1 = null;
			while ((zeile = in.readLine()) != null) {
				//System.out.println(zeile);
				Datum = zeile.substring(0,8);
				System.out.println(Datum);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String [] args){
		Test();
	}

}

von substring(0,7) funktioniert alles super, aber ab substring(0,8) kommt eine Exception.
String index out of range: 8
Wieso?

Viele Grüße
stoi
 

stoi

Mitglied
Desweiteren habe ich eine Textdatei mit ca. 4500 Zeilen.
Wenn ich die Textdatei auslese, werden nur ca. die letzten 50 Zeilen angezeigt...
Ich möchte die Textdatei auslesen und in eine Objektdatenbank speichern..

Wieso werden nicht alle Zeilen ausgelesen?

MfG
stoi
 

eRaaaa

Top Contributor
Du hast weder den Aufbau der Txt-Datei erläutert noch sonstige Informationen eingestellt, wie sollen wir dir jetzt sagen wieso Substring schief läuft? Der String wird nicht lang genug sein...Was gibt denn Zeile 15 aus wenn du die Zeile ausgeben lässt?

Desweiteren habe ich eine Textdatei mit ca. 4500 Zeilen.
Wenn ich die Textdatei auslese, werden nur ca. die letzten 50 Zeilen angezeigt...
Ich möchte die Textdatei auslesen und in eine Objektdatenbank speichern..

Wieso werden nicht alle Zeilen ausgelesen?

Vlt. siehst du einfach nur die letzten 50 Zeilen, die anderen siehst du einfach nicht mehr in deiner Konsole...Testweise könntest du die Objekte erst einmal in eine Liste einfügen solange dein Datenbank-Code noch nicht funktioniert und prüfen wie viele Objekte dann deine Liste hat
 

stoi

Mitglied
Sorry era,
hier weitere Informationen.

Also ich habe Testweise schon Daten in die Objektdatenbank eingefügt, das sind leider nur diese 50 Zeilen, und nicht alle (einfach mit einer While Schleife in die DB geschrieben).

Also das ist eine CSV Datei,
in einer Zeile sind bestimmt über 100 Zeichen.
Die Textdatei sieht ungefähr so aus.

2013-10-20;15:54:13;23.37;28.56;13.50;22.62;14.00;37.00;20.68;18.00;82.75;5.94;0.50; .....

und davon über 4000 Zeilen.

Und hier zeige ich dir mal, wie ich das in die Datenbank geschrieben habe.

Java:
	public static void auslesen(ObjectContainer db){
		try {
			BufferedReader in = new BufferedReader(new FileReader("ALL4500.txt"));
			String zeile = null;
			String Datum = "";
			String Datum2 = "";
			String Sensor1 = null;
			while ((zeile = in.readLine()) != null) {
				//System.out.println(zeile);
				Datum = zeile.substring(0,7);
				System.out.println(Datum);
		        Pilot pilot1 = new Pilot(Datum, 100);
		        db.store(pilot1);
		        System.out.println("Stored " + pilot1);
		        pilot1 = null;
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
}

und noch ein Screenshot wie das in der DB und in der Textdatei aussieht.
 

Anhänge

  • csv.jpg
    csv.jpg
    125,6 KB · Aufrufe: 42
Zuletzt bearbeitet:

eRaaaa

Top Contributor
Ok und jetzt bitte noch einmal genau erklären was du splitten möchtest, bzw. was du herausziehen willst.
Substring 0,7 gibt dir ja 2013-10, wieso willst du 0,8 ? Das wäre ja dann 2013-10- ? Für mich erst einmal unverständlich, 0,10 wäre verständlicher. Und auch beachten dass deine csv-Datei noch eine Zeile mit Überschriften hat, die liest du zur Zeit mit ein?
Und wie ist der Screenshot mit dem Auszug aus der DB erstellt worden? Alles noch ungeklärte Details :)
 

stoi

Mitglied
Hehe,

also natürlich möchte ich nicht nur substring(0,8), sondern das Datum filtern, und die einzelnen Temperaturwerte... diese wären dann auch z.B. (11,14) ... oder (15,18)...
Aber irgendwie kann ich nur von (0,7) lesen, ab dem 9. Char gibts dann eine Exception.

Das er die erste Zeile mitliest, ist mir erstmal egal, ich kann bestimmt irgendwie schreiben, das er erst ab der 2. Zeile lesen soll.

Den Screenshot hab ich mit meinem Snipping Tool gemacht ;-)

In Eclipse hab ich die OME View... und von dort aus auf meine Objektdatenbank db4o zugegriffen...
und dann halt alles anzeigen lassen...

wie gesagt, irgendwie kann eine Zeile nur von (0,7) gelesen werden, und maximal 50 Zeilen, oder sogar weniger, werden angezeigt bzw. gespeichert.

Für mich ein Rätsel, weil ich das alles in die Schleife gepackt habe
 

stoi

Mitglied
also das mit der Datenbank habe ich gelöst, da war die Ansicht einfach nur auf 50 beschränkt... :)
Aber jetzt habe ich immer noch das Problem mit dem Substring..
 

ARadauer

Top Contributor
Bevor du ein zeile.substring(0,7); bzw Probleme in ein Forum postest. Warum überprüfst du nicht einfach die länge deines strings?
 

stoi

Mitglied
Also ich habe mir jetzt einfach eine CSV Bibliothek runtergeladen und damit alle Spalten ausgelesen die ich brauche.
Vielen Dank
 

Ikaron

Bekanntes Mitglied
Nochmal zu deiner Frage, falls du es selbst machen willst -
substring ist hier definitiv nicht die richtige Lösung. Versuch mal line.split(";"), das teilt die Zeile auf in lauter "substrings", die durch ";" getrennt sind. Dein Datum wäre dann also line.split(";")[0], der Wert rechts davon line.split(";")[1], etc...
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
S String index out of range: 8 at java.lang.String.substring(Unknown Source) Java Basics - Anfänger-Themen 13
Substring in einem String finden Java Basics - Anfänger-Themen 13
Z Pattern und Matcher substring zu String möglich? Java Basics - Anfänger-Themen 4
F SubString in String zählen Java Basics - Anfänger-Themen 3
L String.contains() - substring erstellen Java Basics - Anfänger-Themen 3
P Erste Schritte vergleich substring und string Java Basics - Anfänger-Themen 4
C Substring aus String - \n nicht beachten Java Basics - Anfänger-Themen 12
B String Methoden ! substring,indexOf,length... :( Java Basics - Anfänger-Themen 5
F String substring Java Basics - Anfänger-Themen 15
G Substring in String Java Basics - Anfänger-Themen 3
T String beschneiden, Tokenizer und Substring bringen nix Java Basics - Anfänger-Themen 5
J Java Aufgabe -> String einlesen, splitten,Substring & Java Basics - Anfänger-Themen 3
F String Methode subString() Java Basics - Anfänger-Themen 7
S Substring in java Java Basics - Anfänger-Themen 3
Hzrfa S.substring Java Basics - Anfänger-Themen 38
MasterNO substring in array Java Basics - Anfänger-Themen 1
P Methoden Namen trennen mit .substring(), char.At(), .lenght() Java Basics - Anfänger-Themen 8
A startsWith method und substring Java Basics - Anfänger-Themen 2
W Substring Array Java Basics - Anfänger-Themen 1
B substring() maximale Zeichenlänge festlegen? Java Basics - Anfänger-Themen 1
D Substring wiederholen Java Basics - Anfänger-Themen 33
M "substring()" mit Dateien und Pfadangaben Java Basics - Anfänger-Themen 5
Y Substring Java Basics - Anfänger-Themen 10
A Länge Substring Java Basics - Anfänger-Themen 1
A Probleme mit Substring Java Basics - Anfänger-Themen 2
H Frage zu Substring(old, new) Java Basics - Anfänger-Themen 3
I Substring für ne Liste Java Basics - Anfänger-Themen 6
F Substring mittels RegEx ermitteln/ersetzen? Java Basics - Anfänger-Themen 2
D substring entfernt zuviele Zeichen Java Basics - Anfänger-Themen 16
G Java substring vereinfachen Java Basics - Anfänger-Themen 19
L Substring? Java Basics - Anfänger-Themen 5
B Problem mit substring Java Basics - Anfänger-Themen 3
J Substring zwischen Anführungszeichen finden Java Basics - Anfänger-Themen 10
G substring Java Basics - Anfänger-Themen 4
K Probleme mit substring? Java Basics - Anfänger-Themen 5
U substring(0, maxLength) Java Basics - Anfänger-Themen 2
G getName, substring Verwendung Java Basics - Anfänger-Themen 3
G Substring und Leerstellen Java Basics - Anfänger-Themen 2
I Fehler bei Verwendung von substring Java Basics - Anfänger-Themen 4
N Substring herausziehen funktioniert nicht! Java Basics - Anfänger-Themen 9
L Syntax von subString Java Basics - Anfänger-Themen 19
philipp If Abfrage von substring funzt net :( Java Basics - Anfänger-Themen 3
D Files Readen und Substring Java Basics - Anfänger-Themen 5
C Substring ersetzen Java Basics - Anfänger-Themen 3
D substring Frage Java Basics - Anfänger-Themen 2
G substring Java Basics - Anfänger-Themen 5
G Problem mit .substring() und Stringvergleich Java Basics - Anfänger-Themen 3
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
D String Groß/Kleinschreibung Ignorieren Java Basics - Anfänger-Themen 4
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J Ähnlichen String in Liste finden Java Basics - Anfänger-Themen 6
Kartoffel_1 String transformation Java Basics - Anfänger-Themen 7
H String-Operation replace() - Zeichenkette verdoppeln Java Basics - Anfänger-Themen 2
K String analysieren Java Basics - Anfänger-Themen 27
Beowend String zu Date parsen Java Basics - Anfänger-Themen 1
Beowend String auf Satzzeichen überprüfen? Java Basics - Anfänger-Themen 6
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
I Sass Compiler und String erhalten? Java Basics - Anfänger-Themen 7
Avalon String in Double bzw. Währung konvertieren Java Basics - Anfänger-Themen 6
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
F Arraylist<String>Ein Wort pro Zeile Java Basics - Anfänger-Themen 6
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
N String überprüfen Java Basics - Anfänger-Themen 3
E String zerlegen aus args Java Basics - Anfänger-Themen 1
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
J String Filter Java Basics - Anfänger-Themen 5
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Größter zusammenhängender Block gleicher Zeichen im String Java Basics - Anfänger-Themen 1
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D 2D Char Array into String Java Basics - Anfänger-Themen 2
H Cast von Float nach String klappt nicht Java Basics - Anfänger-Themen 12
I Zerlegen von String Java Basics - Anfänger-Themen 3
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
I String Java Basics - Anfänger-Themen 4
I API - zurückgegebener JSON String lesen und in Entity konvertieren Java Basics - Anfänger-Themen 2
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
H Interface Wieso "List<String> list = new ArrayList<>[…]" Java Basics - Anfänger-Themen 4
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
Fodoboo131 RegEx- Umwandlung von String in ausführbares Objekt/ Befehl Java Basics - Anfänger-Themen 9
HolyFUT Input/Output Leerzeichen aus String entfernen - klappt nicht! Java Basics - Anfänger-Themen 13
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
X Datentypen String.equals funktioniert nicht Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben