Portal > Foren > Java > Allgemeine Java-Programmierung > leerzeichen bei zeilenumbruch in einem string
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 02.01.2005, 21:41 Nach oben    #1
mr.no
Gast
 
Beiträge: n/a
Standard leerzeichen bei zeilenumbruch in einem string

Ich habe folgendes problem. Ich lese einen text aus einem jeditorpane aus. Leider ist der text solange das mir java einen zeilenumbruch macht. In der neuen Zeile macht mir java automatisch 4 leerzeichen. Wie kann ich diese 4 leerzeichen wieder löschen. Ich weis leiter die bytezahl vor den zeilenumbruch nicht. Kann mir jemand helfen
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.01.2005, 21:52 Nach oben    #2
Sym
Chefkoch-Mod
 
Benutzerbild von Sym
 
Registriert seit: 30.05.2004
Beiträge: 432
Standard

Hi,

ein Stückchen Code würde uns da mehr helfen. Wie genau liest Du den String aus?
__________________
Denk mal darüber nach...

Lars

ACHTUNG: wenn ich von Klassen spreche, könnte ich auch deren Instanzen meinen.
www.linuxforen.de +++ www.macuser.de +++ www.mrunix.de +++ www.lmprojects.de
Sym ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.01.2005, 22:26 Nach oben    #3
mr.no
Gast
 
Beiträge: n/a
Standard

editor=jeditorPane

Java Code:
  1. editor.getText();

wenn der text zu lang ist macht er zwei zeilen draus.
Sieht man wenn man System.out.println(); benutzt. Er macht mir aber am anfang der zweiten zeile dann 4 leerziechen rein und die will ich raus haben.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.01.2005, 22:32 Nach oben    #4
Sym
Chefkoch-Mod
 
Benutzerbild von Sym
 
Registriert seit: 30.05.2004
Beiträge: 432
Standard

Hmm,

sowas habe ich noch nicht erlebt. Du könntest ihn künstlich auf zwei Strings trennen. Vielleicht genügt es aber auch, einen StringBuffer draus machst.
__________________
Denk mal darüber nach...

Lars

ACHTUNG: wenn ich von Klassen spreche, könnte ich auch deren Instanzen meinen.
www.linuxforen.de +++ www.macuser.de +++ www.mrunix.de +++ www.lmprojects.de
Sym ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.01.2005, 22:37 Nach oben    #5
mr.no
Gast
 
Beiträge: n/a
Standard

wie kann ich diese 4 leerzeichen rausfiltern?? Es ist mir egal das er 2 zeilen daraus macht. mich stöhren nur diese 4 leerzeichen in der zweiten zeile.

Wie geht das mit Stringbuffer. habe damit noch nie gearbeitet.
zwei Strings kann ich schlecht nehmen. da der string bearbeitet wird.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.01.2005, 01:23 Nach oben    #6
Sym
Chefkoch-Mod
 
Benutzerbild von Sym
 
Registriert seit: 30.05.2004
Beiträge: 432
Standard

Java Code:
 
erzeugt Dir einen StringBuffer. Ob es damit klappt, weiß ich aber nicht.

Viel Erfolg.
__________________
Denk mal darüber nach...

Lars

ACHTUNG: wenn ich von Klassen spreche, könnte ich auch deren Instanzen meinen.
www.linuxforen.de +++ www.macuser.de +++ www.mrunix.de +++ www.lmprojects.de
Sym ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.01.2005, 01:46 Nach oben    #7
mr.no
Gast
 
Beiträge: n/a
Standard

geht leider nicht.

Gibt es eine möglichkeit das ich nach den 4 leerzeichen suche??.
weil wenn ich indexOf(" ") geht das nicht. Oder gibt es eine möglichkeit den anfang der zweiten Zeile zu finden. Ich meine so wie indexOf(" ") halt nur das er mir den anfang der zweiten zeile bestimmt.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.01.2005, 01:52 Nach oben    #8
Sym
Chefkoch-Mod
 
Benutzerbild von Sym
 
Registriert seit: 30.05.2004
Beiträge: 432
Standard

Hmm,

das ist wirklich seltsam. Vielleicht könntest Du mit der Methode "getBytes()" was anfangen. Das Bytesarray macht es vielleicht einfacher.

Wieviele Zeichen enthält denn Dein String?
__________________
Denk mal darüber nach...

Lars

ACHTUNG: wenn ich von Klassen spreche, könnte ich auch deren Instanzen meinen.
www.linuxforen.de +++ www.macuser.de +++ www.mrunix.de +++ www.lmprojects.de
Sym ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.01.2005, 12:44 Nach oben    #9
mr.no
Gast
 
Beiträge: n/a
Standard

Es ist unterschiedlich. Kommt drauf an wieviel man eingibt. Diese trennung kommt ca. ab 30 Zeichen vor. können aber auch mehr oder weniger sein
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.01.2005, 18:42 Nach oben    #10
mr.no
Gast
 
Beiträge: n/a
Standard

Ich habe mir überlegt das es warscheinlich gar nicht schlecht ist es in 2 Strings zu spiechern. Wie lese ich das jeditorpane mit 2 Strings aus.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.01.2005, 10:42 Nach oben    #11
Fuzzy
Gast
 
Beiträge: n/a
Standard Löschen mit Java Bordmitteln

Hallo,

die folgende Lösung ist zwar nicht die schnellste für Massendatenverarbeitung, aber bei Oberflächen ist sie kein Problem:

Java Code:
  1. public class ReplaceDemo
  2. {
  3.   public static void main(String[] arguments)
  4.   {
  5.      String mehrZeiler = ("Hallo, Du Da\\n    Nächste Zeile\\n \\t  Übernächste Zeile\\n\\n");
  6.      String allerLeerraumAmZeilenstartGeloescht = mehrZeiler.replaceAll("\\n[ \\t]+", "\n");
  7.      String exaktVierLeerzeichenGeloescht = mehrZeiler.replaceAll("\\n[ ]{4}", "\n");
  8.      System.out.println(mehrZeiler);
  9.      System.out.println(allerLeerraumAmZeilenstartGeloescht);
  10.      System.out.println(exaktVierLeerzeichenGeloescht);
  11.   }
  12. }

Erklärung: Die Klasse String verfügt über die Funktion "replaceAll", mit der beliebige "Regular Expressions" durch Texte ersetzt werden können.

"\\n[ \\t]+" bedeutet: Ein Zeilenumbruch gefolgt von 1 oder mehr Leerzeichen bzw. Tabulatoren.

"\\n[ ]{4}" bedeutet: Ein Zeilenumbruch gefolgt von exakt 4 Leerzeichen.

Man beachte, das in der Regular Expression "\\n" steht während in dem ersetzten String "\n" steht!

Hoffe, geholfen zu haben.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.01.2005, 22:56 Nach oben    #12
mr.no
Gast
 
Beiträge: n/a
Standard

thx für deine hilfe hat funktioniert. Nun muss ich nur noch eine methode finden wie ich die position des zeilenumbruches bestimmen kann. Gibt es da auch irgendwie eine möglichkeit
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.01.2005, 02:32 Nach oben    #13
Fuzzy
Gast
 
Beiträge: n/a
Standard Zwischenfrage

Wofür brauchst Du die Position des Zeilenumbruchs?

Wenn Du den Zeilenumbruch nur löschen willst, solltest Du die Funktion modifizieren und stattdessen

Java Code:
  1. String allerLeerraumAmZeilenstartGeloescht = mehrZeiler.replaceAll("\\n[ \\t]+", "");
  2.    String exaktVierLeerzeichenGeloescht = mehrZeiler.replaceAll("\\n[ ]{4}", "");

benutzen. Dann verschwindet auch der Zeilenumbruch.

Wenn Du den String in mehrere Strings aufteilen willst und zwar sozusagen einen String pro Zeile, sieht die Lösung etwas anders aus. Dann sollte man stattdessen schreiben:

Java Code:
  1. String[] allerLeerraumAmZeilenstartGeloeschtArray = mehrZeiler.split("\\n[ \\t]+");
  2.    String[] exaktVierLeerzeichenGeloeschtArray = mehrZeiler.split("\\n[ ]{4}");

Achtung: Das Ergebnis ist jetzt gleich ein Array und nicht mehr ein einzelner String. Außerdem wurden im zweiten Fall die Zeilen zwei und drei nicht in zwei Strings gespeichert, sondern nur in einem String.

Wenn Du die Position nur so benötigst, gibt es beim String die Methode "indexOf". Sie liefert die Position des gesuchten Zeichens im String zurück. Also

Java Code:
  1. String test = "Hallo\nDu";
  2.     int pos = test.indexOf('\n');    // ergibt 5
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 09.01.2005, 13:31 Nach oben    #14
mr.no
Gast
 
Beiträge: n/a
Standard

Ich habe es schon mit indexOf versucht leider bekomme ich jedesmal den wert -1 raus. Wenn ich jetzt den string in mehrere Strings aufteile kann ich die position über .length() bekommen. THX für die hilfe
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Leerzeichen und TAB im String web2 PHP-Programmierung 2 09.03.2007 11:07
Problem bei Verarbeitung von Templates (Eigene Klassen) dago PHP-Programmierung 21 31.08.2006 16:02
Leerzeichen trennen String ! Jan PHP-Programmierung 23 19.05.2006 20:03
Datei einlesen. cyberdevil87 Allgemeine Java-Programmierung 3 27.06.2005 09:22
string in teilbereiche zerteilen!? Niki_Tesla Allgemeine Java-Programmierung 10 14.02.2005 09:11


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:14 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45