Zeilenumbruch von String schneiden

elgubbo

Mitglied
Hallo!

ich hab da mal ein kleines Problem ;)

ich hab eine datei nach diesem muster:
16222
14246
24a65
2623k

jetz möchte ich dies in ein char[][] wandeln.

hab folgenden ansatz der auch einigermaßen läuft:

zeile für zeile lesen und per .toCharArray() jede zeile zu einem char array machen,
das ganze danach zusammenfügen.
dummerweise liest er mir dabei die zeilenumbrüche mit?

das möchte ich aber nicht.

wie kann ich also von einem string den zeilenumbruch abschneiden?

lg

alex
 

eRaaaa

Top Contributor
Wie liest du denn die Datei? Mit dem Scanner dürfte es da keine Probleme geben
Java:
	Scanner sc = new Scanner(new File("PFAD ZU DEINER DATEI"));
	while(sc.hasNextLine()){
	    char[] array = sc.nextLine().toCharArray();
	    System.out.println(Arrays.toString(array));
	}

??
 

elgubbo

Mitglied
Java:
	// Der Reader wird bereitgestellt
		FileReader input = new FileReader(this.fileName);
		BufferedReader buffInput = new BufferedReader(input);
		// der erste Zeile aus der Datei wird bereitgestellt
		String lineumbruch = buffInput.readLine();

so lese ich die datei ...

kann es daran liegen ?
habe auch schon
Java:
	// Der Reader wird bereitgestellt
		FileReader input = new FileReader(this.fileName);
		BufferedReader buffInput = new BufferedReader(input);
		// der erste Zeile aus der Datei wird bereitgestellt
		String lineumbruch = buffInput.readLine().trim();
probiert... ebenfalls ohne erfolg
 

eRaaaa

Top Contributor
Mhm..funktioniert bei mir ohne Probleme
Java:
        FileReader input = new FileReader(new File("C:\\daten.txt"));
        BufferedReader buffInput = new BufferedReader(input);
        char[] lineumbruch = buffInput.readLine().toCharArray();
        System.out.println(Arrays.toString(lineumbruch));

Ausgabe: [1, 6, 2, 2, 2]

und bei dir ist die Arraylänge 6 oder wie? Evtl. innerhalb deiner Datei hinter den Zeilen noch versteckte Zeichen ? ???:L:oops:

Sonst weiß ich auch nicht, sorry ;/
 

partsch

Aktives Mitglied
Versuch es mal einfach mit:
Java:
String line = bufferedreader.readLine();
line = line.replace(System.getProperty("line.separator"), "");
Syso(Array.toString(line.toCharArray());

line.seperator gibt dir halt \n für linux, \r für apple und \r\n für windows zurück
 

elgubbo

Mitglied
hat in diesem fall leider ebenfalls keinen erfolg gebracht.

actualLevel spaltenzahl: 5
actualLevel zeilenzahl: 4
Zeile 0: [1, 6, 2, 2, 2]
Zeile 1: [1, 4, 2, 4, 6]
Zeile 2: [2, 4, a, 6, 5]
Zeile 3: [2, 6, 2, 3, k]
diese Zeichen sind in der naechsten zeile: ich kann sie nicht kopieren aber es sind kleine quadrate :D
wenn das array dann zu ende wäre müsste er mir, wenn ich einen system out von der zeile mit den quadraten mache ja eigentlich eine nullpointer/outofbounds exception werfen.
aber nichts dergleichen.
er gibt mir einfach diese quadrate.
 

elgubbo

Mitglied
keine gute idee den code hier komplett zu posten denke ... ist für ein projekt will mir nicht vorwerfen lassen müsse plagiarismus zu ermöglichen.... :/

das is jedenfalls die schleife und die stelle wo das array erstellt wird:
Java:
		while(line != null) {
			// Zeile wird erst als char[] gesetzt und dann der Arraylist hinzugefŸgt
			//ich habe hier den aufruf zum lesen der level zusatz infos eingefügt
			line = line.replace(System.getProperty("line.separator"), "");
			zeile = line.toCharArray();
			temp.add(zeile);
			zeilenzahl++;
			line = buffInput.readLine();

		}
		// Kopieren des temps in das Hauptarray und dieses auch vorbereiten
		actualLevel = new char[zeile.length][zeilenzahl];
		System.out.println("actualLevel spaltenzahl: " + actualLevel.length);
		System.out.println("actualLevel zeilenzahl: " +actualLevel[0].length);
		for(int i = 0; i < zeilenzahl; i++) {
			actualLevel[i] = temp.get(i);
		}

die datei sieht exakt so aus:

###time_to_water:45000|time_between_water:1500
16222
14246
24a65
2623k
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
[c]actualLevel = new char[zeile.length][zeilenzahl];[/c]

Verwechselst du da nicht die beiden?

zeile.length ist ja = 5
zeilenzahl = 4

Muss doch dann genau umgedreht sein?!?!

[c]actualLevel = new char[zeilenzahl][zeilenzahl.length];[/c] ??

Oder nicht?

ZUSATZ:
Ich hatte eben auch ein bisschen von deinem Code noch sehen können und irgendwie sah das alles mit dem tmp usw. extrem durcheinander aus.
Sowas sollte doch da reichen:
Java:
	List<char[]> zeilen = new ArrayList<char[]>();
	while (sc.hasNextLine()) {
	    zeilen.add(sc.nextLine().toCharArray());  //oder eben entsprechen für den Reader readLine()
	}
	// to char-Array
	char[][] array = new char[zeilen.size()][zeilen.get(0).length];
	for (int i = 0; i < array.length; i++) {
	    array[i] = zeilen.get(i);
	}
 

elgubbo

Mitglied
vom prinzip her mache ich es ja genau so wie du in deinem code beispiel...
nur dass eben das Array
anstatt so:
char[][] array = new char[zeilen.size()][zeilen.get(0).length];
so:
char[][] array = new char[zeilen.get(0).length][zeilen.size()];
aufgebaut sein soll, damit man später über die koordinaten
x= 4
y= 3
in einem array wie diesem
16222
14246
24a65
2623k
eben genau das k in der untersten zeile erhält.
 

eRaaaa

Top Contributor
.....du kannst das doch nicht einfach umdrehen wie es dir passt!
In Java gilt nun mal [zeile][spalte]
Wenn du nun also die Zeilenanzahl hast (was du ja anscheinend mit zeilenanzahl++ jedes mal hoch zählst) und dann dein zeile = array ist, dann steht halt in zeile.length die "Spaltenanzahl"..
also musst du dann dein char-Array dementsprechend auch so initialisieren

So stehts bei dir in Zeile 12
[c] actualLevel = new char[zeile.length][zeilenzahl];[/c]
das ist imo genau verkehrt herum...
[c] actualLevel = new char[zeilenanzahl][zeile.length];[/c]

Aber du zeigst weder deinen kompletten Code, noch nimmst du Vorschläge an, wie soll man dir da KONKRET helfen? :pueh:

/EDIT: Also noch eine Anmerkung: Das Problem liegt scheinbar weder daran, dass die Datei falsch ist, sie falsch eingelesen werden, sondern einfach, dass du durcheinander kommst bei deinem Code und bei der Erstellung der Arrays...
Java:
	char[][] array = new char[2][2];
	array[0] = new char[]{'a','b'};
	//array[1] initialisierst du nicht
	for (char[] cs : array) {
	    System.out.println(Arrays.toString(cs));
	}
So ungefähr sieht das bei dir aus meiner Meinung...daher kommt`s dann auch zu den von dir beschriebenen "Quadraten" in der letzten Zeile...wo GENAU der Fehler liegt...nunja..ohne den gesamten Code.??!!? KA (eine Vermutung habe ich ja schon geschrieben)
 
Zuletzt bearbeitet:

elgubbo

Mitglied
danke für die hilfe!

thread kann als gelöst betrachtet werden ...

durch die hinweise bin ich dann doch noch drauf gekommen woran es hängt!

danke nochmal
 

elgubbo

Mitglied
es lag letztendlich daran dass die funktion so wie du es sagtest richtig war, (also die initalisierung des arrays war vertauscht) und dadurch hat es bei den aufrufen geknallt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Datentypen Zeilenumbruch im String (2-dimensionales array) Java Basics - Anfänger-Themen 4
G Zeilenumbruch in einem String Java Basics - Anfänger-Themen 21
G Zeilenumbruch in String variable Java Basics - Anfänger-Themen 4
G Zeilenumbruch aus String entfernen ? Java Basics - Anfänger-Themen 13
JavaBeginner22 TextArea, ohne Zeilenumbruch? Java Basics - Anfänger-Themen 4
JUNSKI Zeilenumbruch JLabel Java Basics - Anfänger-Themen 1
G Benutzereingaben durch Zeilenumbruch trennen und in Array individueller Größe speichern Java Basics - Anfänger-Themen 20
Dawinartor Klassen Zeilenumbruch in JOptionPane.showMessageDialog Java Basics - Anfänger-Themen 8
S \n nicht in Zeilenumbruch umwandeln Java Basics - Anfänger-Themen 5
S Zeilenumbruch mit Scanner erkennen Java Basics - Anfänger-Themen 9
M Zeilenumbruch ab der 10. Zahl Java Basics - Anfänger-Themen 11
C Stringbuffer auf Zeilenumbruch überprüfen Java Basics - Anfänger-Themen 14
F StringBuilder: Zeilenumbruch nach x Zeichen ohne Worttrennung Java Basics - Anfänger-Themen 1
C Zeilenumbruch für langes Strings Java Basics - Anfänger-Themen 2
I Zeilenumbruch im mailto-body Java Basics - Anfänger-Themen 5
D Zeilenumbruch- .txt-Ausgabedatei Java Basics - Anfänger-Themen 10
AssELAss Xml nur nach End-Tag Zeilenumbruch?? Java Basics - Anfänger-Themen 7
A Zeilenumbruch im Code Java Basics - Anfänger-Themen 5
E Zeilenumbruch!? Java Basics - Anfänger-Themen 3
A Zeilenumbruch im Jlabel Java Basics - Anfänger-Themen 11
M ArrayList || Bei Ausgabe nach jedem 10. Eintrag Zeilenumbruch Java Basics - Anfänger-Themen 7
M Zeilenumbruch in JLabel Java Basics - Anfänger-Themen 51
M Zeilenumbruch in JTextarea Java Basics - Anfänger-Themen 4
J Input/Output Datei - Zeilenumbruch einlesen Java Basics - Anfänger-Themen 10
B Zeilenumbruch (zweidim. Matrix) Java Basics - Anfänger-Themen 2
N Denkanstoß Zeilenumbruch Java Basics - Anfänger-Themen 9
M Zeilenumbruch JTextPane Java Basics - Anfänger-Themen 2
C jTable in .txt - versteckter Zeilenumbruch? Java Basics - Anfänger-Themen 6
D Zeilenumbruch für XMl File Java Basics - Anfänger-Themen 3
C Zeilenumbruch verhindern / Clrscr ? Java Basics - Anfänger-Themen 3
T System.out.printf Zeilenumbruch nach x Stellen Java Basics - Anfänger-Themen 4
A Abfrage Zeilenumbruch+.+Zeilenumbruch Java Basics - Anfänger-Themen 17
c_sidi90 jTextarea kein Zeilenumbruch erlauben Java Basics - Anfänger-Themen 4
O TxT Zeilenumbruch Java Basics - Anfänger-Themen 4
E Zeilenumbruch in JButton mit Variable Java Basics - Anfänger-Themen 2
M Zeilenumbruch nach x Zeichen Java Basics - Anfänger-Themen 8
C textfield zeilenumbruch Java Basics - Anfänger-Themen 2
chik Zeilenumbruch in einem JLabel Java Basics - Anfänger-Themen 6
M "spezieller" Zeilenumbruch beim Kopieren Java Basics - Anfänger-Themen 3
S Zeilenumbruch awt.textarea Java Basics - Anfänger-Themen 16
M BufferedReader.readline() Unix/Windows Zeilenumbruch Java Basics - Anfänger-Themen 4
J Zeilenumbruch in Java Java Basics - Anfänger-Themen 2
J Zeilenumbruch in Java zwischen zwei Strings Java Basics - Anfänger-Themen 6
G Problem mit Zeichen Zeilenumbruch sieht aus wie(Eckige Null) Java Basics - Anfänger-Themen 4
V Zeilenumbruch bei der Eingabe verhindern Java Basics - Anfänger-Themen 6
W Text mit Zeilenumbruch zeichnen? Java Basics - Anfänger-Themen 5
S Weicher Zeilenumbruch? Java Basics - Anfänger-Themen 2
M Konsolenausgabe ohne Zeilenumbruch Java Basics - Anfänger-Themen 3
0 Zeilenumbruch funktioniert nicht Java Basics - Anfänger-Themen 4
N automatischer Zeilenumbruch Java Basics - Anfänger-Themen 3
N zeilenumbruch einfügen Java Basics - Anfänger-Themen 3
B Char Feld -> "Zeilenumbruch" Java Basics - Anfänger-Themen 5
M Am Ende eines Strings den Zeilenumbruch entfernen Java Basics - Anfänger-Themen 1
K Zeilenumbruch entfernen aus datei ?!?!? Java Basics - Anfänger-Themen 18
R Zeilenumbruch in einer Datei Java Basics - Anfänger-Themen 8
M sting komplett bearbeiten und nicht nach zeilenumbruch ende Java Basics - Anfänger-Themen 3
G Zeilenumbruch Java Basics - Anfänger-Themen 20
M JLabel - Zeilenumbruch Java Basics - Anfänger-Themen 2
G Automatischer Zeilenumbruch bei einer TextArea Java Basics - Anfänger-Themen 16
F Zeilenumbruch Java Basics - Anfänger-Themen 9
L Plattformunabhängiger Zeilenumbruch Java Basics - Anfänger-Themen 2
J neuer Zeilenumbruch in Datei Java Basics - Anfänger-Themen 7
L Zeilenumbruch Java Basics - Anfänger-Themen 3
D zeilenumbruch feststellen Java Basics - Anfänger-Themen 8
D zeilenumbruch EOF Java Basics - Anfänger-Themen 2
D ausgabe verändern (statt zeilenumbruch leerzeichen) Java Basics - Anfänger-Themen 2
B In einem Label "Zeilenumbruch" Java Basics - Anfänger-Themen 4
T BufferedWriter Zeilenumbruch Java Basics - Anfänger-Themen 2
P Borland Jbuilder X - Zeilenumbruch im Source Code ? Java Basics - Anfänger-Themen 2
D FileWriter write? Zeilenumbruch ? Java Basics - Anfänger-Themen 4
T JTable, DB, Zeilenumbruch Java Basics - Anfänger-Themen 25
K Zeilenumbruch in Datei schreiben Java Basics - Anfänger-Themen 2
V Zeilenumbruch in Tooltips Java Basics - Anfänger-Themen 13
T readLine ohne anschließenden Zeilenumbruch? Java Basics - Anfänger-Themen 2
G wie 'tabs' und 'zeilenumbruch' in textfile einbauen? Java Basics - Anfänger-Themen 5
G gesteuerter Zeilenumbruch Java Basics - Anfänger-Themen 2
G jEditorPane: inhalt ohne zeilenumbruch darstellen. wie? Java Basics - Anfänger-Themen 3
D Zeilenumbruch & Überschrift Java Basics - Anfänger-Themen 12
N Zeilenumbruch im StringTokenizer?? Java Basics - Anfänger-Themen 4
B Zeilenumbruch blos wie? Java Basics - Anfänger-Themen 4
M Zeilenumbruch im Textfeld Java Basics - Anfänger-Themen 5
G automatischer Zeilenumbruch Java Basics - Anfänger-Themen 5
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

Ähnliche Java Themen

Neue Themen


Oben