String in array einlesen alle x zeichen

Status
Nicht offen für weitere Antworten.
O

Orokan

Gast
Hallo,

wie kann ich am schnellsten ca. 5000 oder mehr Zeichen zu je 50 Zeichen in ein String[]-Array einlesen, so dass das String Array eine Länge hat von 100 sprich index 0..99 ? Einlesen mit der Split funktion geht ja nur wenn ich ein Zeichen übergebe, doch eine anzahl von Zeichen und dann soll gesplittet werden gibts ja net oder?
 
O

Orokan

Gast
Pappenheimer++ hat gesagt.:
substring gibts, guck mal hier
http://java.sun.com/javase/6/docs/api/
unter "String"

yo soweit war ich auch nur klappts net ^^

in dem String sourceData stehen die 5000 Zeichen drin. laenge ist die Zeile wo abgeschnitten wird sprich hier würde ich die Zeile in ein Array einlesen. Doch ich bekomme einen Fehler:

Code:
Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: 50

ok der startwert 0 im substring muss später auch vorrücken zu position 50, 100 usw. als neuer startwert aber selbst in diesem pippi beispiel müsste die ausgabe ja funzen hm...

Code:
int k=0;
		int laenge = 50;
		for(int b = 0 ; b < sourceData.length() ; laenge =+ 50 )
		{
			String newLineString = sourceData.substring(0,laenge);
			System.out.println("Zeile " + k + ": " + newLineString);
			k++;
		}
 

Janus

Bekanntes Mitglied
sourceData ist offensichtlich kürzer als 50. außerdem hast du da nen dreher in deiner schleife, laenge bleibt ständig auf 50. und davon abgesehen extrahierst du aus sourceData immer von position 0 aus.
 
O

Orokan

Gast
Janus hat gesagt.:
sourceData ist offensichtlich kürzer als 50. außerdem hast du da nen dreher in deiner schleife, laenge bleibt ständig auf 50. und davon abgesehen extrahierst du aus sourceData immer von position 0 aus.


Code:
int k=0;
		int laenge = 50;
		System.out.println("länge: " + sourceData.length());
		String newLineString;
		int tempStart = 0;
		for(int b = 0 ; b < sourceData.length() ; laenge += 50 )
		{			
			newLineString = sourceData.substring(tempStart,laenge);
			System.out.println("Zeile " + k + ": " + newLineString);
			k++;
			tempStart += 50;
		}

Ausgabe:

Code:
länge: 569
Zeile 0: String String newString newLineStringString String
Zeile 1:  newLineStringString newLineString newLineStringri
Zeile 2: ng newLineStringString newLineString756756String n
Zeile 3: ewLineStringString newLineStringString newLineStri
Zeile 4: ngString newLineStringString newLineStringString n
Zeile 5: ewLineStrdfgfdingString newLineStringString newLin
Zeile 6: eStrinfgfdgfdggString newLineStringString 35435 ne
Zeile 7: wLineStringString newLineStringString newLineStrin
Zeile 8: gStringfgfgfgfg newLineStringString newLineStringS
Zeile 9: tring newLineStringString newLineStringString newL
Zeile 10: ineStringString newLineStringString newLineStringS
Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: 600

jetzt geht zwar meine Ausgabe, doch die Laufbedingung stimmt noch überhaupt nicht, denn die schleife wird 569 mal durchlaufen, ist ja klar dass nach 11 durchläufen mit 50 Zeichen eine Exception kommt, DOCH WIE sage ich der Laufzeitbedingung, dass dass schluss ist mit dem Durchlaufen der schleifen, weil ein weiteres substring mit dem wert von laenge über die sourceData.length() geht?

if(laenge > sourceData.length() ) laenge = sourceData.length() geht auch net:

Code:
länge: 561
Zeile 0: dsffffffffffffffffffffffffffffsdaeeeeeeeeeeeeeeeee
Zeile 1: eeeeeedsffffffffffffffffffffffffffffsdaeeeeeeeeeee
Zeile 2: eeeeeeeeeeeedsffffffffffffffffffffffffffffsdaeeeee
Zeile 3: eeeeeeeeeeeeeeeeeedsffffffffffffffffffffffffffffsd
Zeile 4: aeeeeeeeeeeeeeeeeeeeeeeedsffffffffffffffffffffffff
Zeile 5: ffffsdaeeeeeeeeeeeeeeeeeeeeeeedsffffffffffffffffff
Zeile 6: ffffffffffsdaeeeeeeeeeeeeeeeeeeeeeeedsffffffffffff
Zeile 7: ffffffffffffffffsdaeeeeeeeeeeeeeeeeeeeeeeedsffffff
Zeile 8: ffffffffffffffffffffffsdaeeeeeeeeeeeeeeeeeeeeeeeds
Zeile 9: ffffffffffffffffffffffffffffsdaeeeeeeeeeeeeeeeeeee
Zeile 10: eeeedsffffffffffffffffffffffffffffsdaeeeeeeeeeeeee
Zeile 11: eeeeeeeeeev
Exception in thread "AWT-EventQueue-0" java.lang.StringIndexOutOfBoundsException: String index out of range: -39
warum die 39 zeichen jetzt zuviel sind versteh ich net denn laenge müsste jetzt ja 561 sein ???
 

Janus

Bekanntes Mitglied
dann mal nen beispiel:
Code:
final int len = 50;
for( int i = 0, n = reallyLongString.length(); i < n; i += len )
{
  final String nextToken = reallyLongString.substring( i, Math.min( i + len, n ) );
  System.out.println( nextToken );
}
achte drauf, dass der substring nicht über die länge des string hinausrennt. ich habs hier mit Math.min gelöst
 
O

Orokan

Gast
eine for loop mit 4 parametern ?? gibts das? komisch nie gesehen naja auf jeden fall gehts nun ^^ danke dir!
 

H3llGhost

Bekanntes Mitglied
Vier Parameter und mehr gehen ... ;)
Einer muss davon die Variable sein, der andere die Bedingung und der letzte die Sache was getan werden muss.
Du kannst einiges da rein packen ... :)
 

Janus

Bekanntes Mitglied
das hat aber nichts mit dem problem zu tun. spart einfach paar methodenaufrufe. ist ein standardpattern, das man sich gern angewöhnen darf.
 
O

Orokan

Gast
so nun versucht das ganze in array einzulesen:

Code:
final int len = 50;		
		int test = sourceData.length() / len +1;		
		String[] myArray = new String[test];
		
		System.out.println("array länge: " + test);
		System.out.println("datenString länge in zeichen " + sourceData.length());
		
		for( int i = 0, n = sourceData.length(); i < n; i += len )
		{
		  final String nextToken = sourceData.substring( i, Math.min( i + len, n ) );
		 myArray[i] = nextToken;
		 i++;
		}


fehler:

Code:
array länge: 10
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 51
datenString länge in zeichen 468


bei einer länge von 10 x 50 zeichen und ich habe nur 468 dürfte da doch kein Problem sein???
 

Janus

Bekanntes Mitglied
du manipulierst i innerhalb der schleife, das ist nicht gut ;) spendier myArray ne eigene indexvariable.
 
O

Orokan

Gast
Janus hat gesagt.:
du manipulierst i innerhalb der schleife, das ist nicht gut ;) spendier myArray ne eigene indexvariable.
ich dachte arrays in der schleife manipulieren sei richtig, da durch das array iteriert wird? eine eigene indexvariable? Wie meinst du das?
 
O

Orokan

Gast
Code:
final int len = 50;		
		int test = sourceData.length() / len +1;		
		String[] myArray = new String[test];
			
		for(int a = 0 ; a < myArray.length ; a++ )
		{			
			for( int i = 0, n = sourceData.length(); i < n; i += len )
			{
			  final String nextToken = sourceData.substring( i, Math.min( i + len, n ) );			 			 
			  myArray[a] = nextToken;		  
			}
			System.out.println("text: " + myArray[a]);
		}


Nun gibt er zwar alles aus was im myArray steht NUR es ist immer der gleiche Satz was ja auch klar ist, denn innerhalb der inneren for-schleife wird der counter "a" ja nicht inkrementiert....

also wenn ich nach myArray[a] = nextToken; a++; schreibe müsste der nextToken ja einen Index weiter gehen im Array doch ich bekomme auch einen error:

Code:
java.lang.ArrayIndexOutOfBoundsException: 8
???:L
 

Janus

Bekanntes Mitglied
Code:
for( int i = 0, a = 0, n = sourceData.length(); i < n; i += len, ++a ) 
{ 
  myArray[ a ] = sourceData.substring( i, Math.min( i + len, n ) );
}
 
O

Orokan

Gast
Janus hat gesagt.:
Code:
for( int i = 0, a = 0, n = sourceData.length(); i < n; i += len, ++a ) 
{ 
  myArray[ a ] = sourceData.substring( i, Math.min( i + len, n ) );
}
super also diese x-beliebigen parameter in der java for-schleife sind ja cool ist das neu??? habe gegoogelt und meine java bücher angeschaut, finde darin aber nichts dass for-loop mehr als 3 parameter haben kann? woher hast du das?
 

Pappenheimer++

Bekanntes Mitglied
Ne, das ist nicht "neu". Sieh mal genau hin: Es gibt drei Teile in dem Klammerausdruck nach "for", die jeweils mit einem Semikolon abgetrennt sind.
Code:
for(Initialisierung; Bedingung; Inkrement/Update)
Wenn du mehrere Befehle willst, kannst du die einfach mit Kommata aneinanderreihen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Eingaben in String Array einlesen Java Basics - Anfänger-Themen 12
K Input/Output 6000 Zeilen einlesen und String-Array vergleichen? Java Basics - Anfänger-Themen 1
W String in ein String-Array einlesen ? Java Basics - Anfänger-Themen 2
H text string alle 100 zeichen in ein 1D array einlesen ? Java Basics - Anfänger-Themen 8
C Frage zu: String einlesen -> Array von Chars erhalten Java Basics - Anfänger-Themen 4
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
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
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
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
R Ein Multidimensionales String Array initialisieren und Deklarieren Java Basics - Anfänger-Themen 2
H Überprüfen ob String Array leer ist Java Basics - Anfänger-Themen 4
L ArrayList<String> --> double[] array Java Basics - Anfänger-Themen 18
R String in char-Array übertragen Java Basics - Anfänger-Themen 5
P Datentypen Array und String Java Basics - Anfänger-Themen 2
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
F Auto String mit Array Name aus Datei... oder so ähnlich Java Basics - Anfänger-Themen 4
J String aus einem Array entfernen Java Basics - Anfänger-Themen 10
J String Array zu Map<Character, List<Character>> mit Streams Java Basics - Anfänger-Themen 1
S Nutzereingabe splitten und in string array wieder ausgeben. Java Basics - Anfänger-Themen 1
FelixN RegEx aus einem String als String-Array zurückgeben Java Basics - Anfänger-Themen 8
Curtis_MC 2dimensionales Array als String ausgeben Java Basics - Anfänger-Themen 2
I char Array to String Java Basics - Anfänger-Themen 3
I converting boolean Array to String Array Java Basics - Anfänger-Themen 10
M String array durch Eingabe begrenzen Java Basics - Anfänger-Themen 7
P Objekt aus String-Array erzeugen Java Basics - Anfänger-Themen 104
R Objekte aus Array als String + kommasepariert speichern Java Basics - Anfänger-Themen 12
scratchy1 Array sortieren und dann String-Repräsentation ausgeben Java Basics - Anfänger-Themen 2
E Array to String Method Reverse Java Basics - Anfänger-Themen 5
Mosquera Get String Array - ComboBox Java Basics - Anfänger-Themen 10
P Strings in String Array schreiben Java Basics - Anfänger-Themen 13
V zweidimensionale String Array Java Basics - Anfänger-Themen 1
J String, Int und double Array sortieren Java Basics - Anfänger-Themen 16
M Array nach String durchsuchen und zurückgeben Java Basics - Anfänger-Themen 16
J Klassen Zugriff auf ein "String Array" Java Basics - Anfänger-Themen 6
C Methoden String in char Array Java Basics - Anfänger-Themen 3
T Schauen ob eine Ziffer in einem String-Array häufiger vorkommt Java Basics - Anfänger-Themen 8
L Prüfe, ob die im String Array enthaltenen Strings aufsteigend sind. Java Basics - Anfänger-Themen 19
N String array to String Java Basics - Anfänger-Themen 6
informatikschüler21 String im Array sortieren Java Basics - Anfänger-Themen 4
B String in Array speichern Java Basics - Anfänger-Themen 4
L String zu String Array Java Basics - Anfänger-Themen 2
D Input/Output Array in einem String mit einem Trennzeichen verbinden Java Basics - Anfänger-Themen 17
D String-Array Java Basics - Anfänger-Themen 3
V String Array gegen null-Eintrag sichern Java Basics - Anfänger-Themen 11
K String in String-Array suchen Java Basics - Anfänger-Themen 11
K String Array basierend auf int Array füllen Java Basics - Anfänger-Themen 2
K Im String Array suchen Java Basics - Anfänger-Themen 8
D Elements[] string = document.getElementsByClass("betEvent"); als Array Java Basics - Anfänger-Themen 1
C Array in String umwandeln Java Basics - Anfänger-Themen 5
D Best Practice String aufbau - Char Array oder Anhängen Java Basics - Anfänger-Themen 11
M String Array mischen Java Basics - Anfänger-Themen 3
F Methoden Kontaktliste - String in einem Array suchen und ausgeben Java Basics - Anfänger-Themen 3
K String zu int Array Java Basics - Anfänger-Themen 3
B String auslesen und Stellen im Array speichern Java Basics - Anfänger-Themen 1
W Array in String und String in Array - falsche Ausgaben Java Basics - Anfänger-Themen 20
W String Array in Int umwandeln um auf Zahl zu überprüfen Java Basics - Anfänger-Themen 4
W Array nach String durchsuchen und Ausgeben Java Basics - Anfänger-Themen 8
B Binäre Suche in einem String Array Java Basics - Anfänger-Themen 10
K String in String-Array finden Java Basics - Anfänger-Themen 7
S Rückgabe-Array lässt sich nicht auslesen, LocalDate mit String Java Basics - Anfänger-Themen 3
J 2 String Arrays in neuem String Array verbinden Java Basics - Anfänger-Themen 4
S String zu quadratischen Array Java Basics - Anfänger-Themen 3
T Array mit String, Zahlen in If Saetze packen Java Basics - Anfänger-Themen 3
J Int Array und String in einer neuen Methoder übergeben Java Basics - Anfänger-Themen 7
S ArrayDeque zu String Array Java Basics - Anfänger-Themen 2
A Variablen String Array in einzelne Strings auspalten Java Basics - Anfänger-Themen 4
fLooojava String zu Array Java Basics - Anfänger-Themen 5
C Array List mit String vergleichen und Fehlermeldung ausgeben Java Basics - Anfänger-Themen 6
J array in String umwandeln Java Basics - Anfänger-Themen 1
J array in String umwandeln Java Basics - Anfänger-Themen 3
E Erste Schritte Array soll kleiner werdenden String erstellen Java Basics - Anfänger-Themen 5
D String-Array aus Tastatureingabe Java Basics - Anfänger-Themen 4
A Mehrdimensionalles Array in String ausgeben in Liste Java Basics - Anfänger-Themen 5
L String array mit split füllen Java Basics - Anfänger-Themen 14
P Datentypen String auf JTextField wird zu Char-Array und anschließend zu int Java Basics - Anfänger-Themen 12
A private string array Java Basics - Anfänger-Themen 5
W String / Int-Array Java Basics - Anfänger-Themen 13
C Doppelte Einträge aus String [] Array entfernen. Java Basics - Anfänger-Themen 5
T Sortieren/Suche klappt nicht ganz (String Array) Java Basics - Anfänger-Themen 2
B Werte über Scanner in ein 3 dim String Array schreiben Java Basics - Anfänger-Themen 7
T String in Array suchen Java Basics - Anfänger-Themen 9
G String einem String Array übergeben Java Basics - Anfänger-Themen 3
G String to Array Java Basics - Anfänger-Themen 2
P CSV Datei in String Array -> Split -> New Array Java Basics - Anfänger-Themen 2
U OOP Array vom Typ String > Inhalt ausgeben Java Basics - Anfänger-Themen 8
F Variablen String-Array wird ungewollt "überschreiben" Java Basics - Anfänger-Themen 7
J Zeichen aus String Array lesen Java Basics - Anfänger-Themen 13
S Länge eines Elements im String Array Java Basics - Anfänger-Themen 5
F Problem: Verschlüsselung von String in Array Fehler Java Basics - Anfänger-Themen 2
C Datentypen Zweidimensionales Array mit String und int Java Basics - Anfänger-Themen 3
J Array zu String Java Basics - Anfänger-Themen 13
B String Array in main() Java Basics - Anfänger-Themen 2
G String Array konvertieren in Integer Array? Java Basics - Anfänger-Themen 7
Junb String in Array speichern Java Basics - Anfänger-Themen 4
J Einem String-Array in einer for-Schleife Strings zuweisen - Klappt nicht in einer for-Schleife Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben