Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Java > Allgemeine Java-Programmierung > leerzeichen bei zeilenumbruch in einem string
Antwort
 
Themen-Optionen
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
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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: 433
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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: 433
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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: 433
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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: 433
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  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen 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

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

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are 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 +2. Es ist jetzt 00:41 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

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