regulärer Ausdruck -> wo ist der Fehler

Status
Nicht offen für weitere Antworten.

Evolver

Bekanntes Mitglied
Ich teile einen gegebenen String mit der Funktion String.split(/*regulärere Ausdruck*/) in Teilstrings auf. Getilt werden soll bei Whitespaces, sodass ich am Ende nur Teilstrings haben, in denen etwas "drin steht". So sieht mein Code aus:
Code:
String[] tParts = tContent.split("\\s+");
Nach meinem Verständnis sollte das beliebige Whiestrings und Kombinationen dieser (also z.B.: Tab+Leerzeichen+Tab) "ausfiltern". Leider bekommen ich auch hin und wieder Leere Strings in tParts, und zwar immer dann, wenn die nach einem Zeilenumbruch noch weitere Whitespaces folgen. Warum? Wie verhindere ich das?
 
S

SlaterB

Gast
also bei mir funktionierts, auch mit Zeilenumbruch?
Code:
class Test {
public static void main(String[] args)
        throws Exception
    {
        String[] tParts = "a  \n b".split("\\s+");
        p(tParts.length);
        for (String st : tParts)
        {
            p("line: " + st);
        }

    }
}
 

kleiner_held

Top Contributor
Hast du mal einen Beispiel String bei dem das auftritt?
PS: ein Zeilenumbruch zaehlt mit unter \s siehe auch JavaDoc zu Pattern
Code:
\s  	A whitespace character: [ \t\n\x0B\f\r]
 

Evolver

Bekanntes Mitglied
@Roar:
Siehe Antwort von kleiner_held.

@kleiner_held:
Ich lese fogende Datei zeilenweise ein, eine Zeile entspricht dann dem String tContent in obigem Code:
Code:
class 	  	Javatest
{
 public int Nix()
	{
	}
}

Also man sieht das jetzt etwas schlecht. In Hex ausgedrück wäre eine kritische Stelle z.B. zwischen Zeile 4 und 5: 0x0D0A09 (Zeilenumbruck + Tab)
Als Ergebnis erhalte ich dort '{', dann einen leeren String, dann '}'. Doch woher kommt der leere String?
 
S

SlaterB

Gast
ganz du diese Datei zur Verfügung stellen? oder einen String nachbauen?
bei mir geht alles..

Code:
class Test {
public static void main(String[] args)
        throws Exception
    {
        String[] tParts = "public int Nix() \n{ \n\t \n \t  }\n }".split("\\s+");
        p(tParts.length);
        for (String st : tParts)
        {
            p("line: " + st);
        }

    }
}
 

Evolver

Bekanntes Mitglied
Ich denke ich habe den Fehler gefunden. Er tritt immer genau dann auf, wenn der zu prüfende String mit einem Whitespace beginnt. Dieser wird dann als Trennzeichen erkannt, der (null Zeichen lange) Teil davor wird als erster String genommen. Wie löse ich diese Problem jetzt?
 

kleiner_held

Top Contributor
Indem du den String vor dem Splitten mittels
Code:
myString = myString.trim();
beschneidest.
 

Evolver

Bekanntes Mitglied
Danke, so funktioniert das. Nun noch eine Frage: Kann ich Strings auch so zerlegen lassen, dass das/die Trennzeichen nicht verworfen werden, sondern sich noch in den Teilstringsbefinden? Also die Anweisung müsste dann etwa so aussehen:
- Trenne vor Zeichen 'x|y'
- Trenne nach Zeichen 'z'
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Einfacher regulärer Ausdruck (RegEx) für E-Mail-Adressen Java Basics - Anfänger-Themen 2
B Regulärer Ausdruck Java Basics - Anfänger-Themen 12
D Regulärer Ausdruck Java Basics - Anfänger-Themen 8
B Regulärer Ausdruck Java Basics - Anfänger-Themen 3
C Regulärer Ausdruck matched nicht Java Basics - Anfänger-Themen 2
B Regulärer Ausdruck gesucht Java Basics - Anfänger-Themen 6
M regulärer Ausdruck funktioniert nicht Java Basics - Anfänger-Themen 6
X Regulärer Ausdruck für einen FileNameFilter Java Basics - Anfänger-Themen 2
S regulärer Ausdruck HTML Java Basics - Anfänger-Themen 5
turmaline Ein regulärer Ausdruck für HTML-Sonderzeichen Java Basics - Anfänger-Themen 3
B regulärer Ausdruck mit Metazeichen Java Basics - Anfänger-Themen 4
D regulärer Ausdruck: ^ $ Java Basics - Anfänger-Themen 6
F Regulärer Ausdruck warum false ? Java Basics - Anfänger-Themen 3
O Regulärer Ausdruck gesucht Java Basics - Anfänger-Themen 2
S Regulärer Ausdruck - alles was keine Zahl ist entfernen Java Basics - Anfänger-Themen 2
S regulärer ausdruck zum zählen eines wortes Java Basics - Anfänger-Themen 4
K Regulärer Ausdruck Java Basics - Anfänger-Themen 7
L Regulärer Ausdruck Java Basics - Anfänger-Themen 2
M regulärer Ausdruck Java Basics - Anfänger-Themen 3
X Regulärer Ausdruck Java Basics - Anfänger-Themen 6
G regulärer Ausdruck alles was zwischen ' ' steht Java Basics - Anfänger-Themen 4
P Zeile als regulärer Ausdruck Java Basics - Anfänger-Themen 5
G Regulärer Ausdruck: gefunden und gleichzeitig nicht gefunden Java Basics - Anfänger-Themen 5
M regulärer Ausdruck zum Parsen einer E-Mail Signatur Java Basics - Anfänger-Themen 16
T Regulärer Ausdruck Java Basics - Anfänger-Themen 4
G regulärer ausdruck zur überprüfung von ip-adresse? Java Basics - Anfänger-Themen 13
T Regulärer Ausruck mit replace Java Basics - Anfänger-Themen 3
W Suche nach strings zwischen eckigen Klammern mittels regulärer Ausdrücke Java Basics - Anfänger-Themen 3
W Reguläre Ausdruck Java Basics - Anfänger-Themen 6
hebein PDF Ausdruck auf Drucker - Probleme mit Format Java Basics - Anfänger-Themen 17
K Warum zeigt dieser reguläre Ausdruck true an? Java Basics - Anfänger-Themen 1
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
KogoroMori21 Boolscher Ausdruck Java Basics - Anfänger-Themen 15
C Ausdruck Java Basics - Anfänger-Themen 4
E Boolescher Ausdruck Java Basics - Anfänger-Themen 1
M Regex-Ausdruck: Alle Zeichen bis auf ein bestimmtes erlauben (p{L}) Java Basics - Anfänger-Themen 5
G Warum ist hier ein Lamda-Ausdruck möglich Java Basics - Anfänger-Themen 2
O Lambda Ausdruck mit Wildcard einschränken Java Basics - Anfänger-Themen 5
F Ist das ein korrekter Regex-Ausdruck? Java Basics - Anfänger-Themen 12
B Interface Java Lambda Ausdruck. Java Basics - Anfänger-Themen 11
G Boolschen Ausdruck true machen Java Basics - Anfänger-Themen 2
F Ausdruck wirft unerwarteten Error Java Basics - Anfänger-Themen 2
K Regulären Ausdruck in Java abbilden Java Basics - Anfänger-Themen 4
M Lambda - Ausdruck zu Beschreibung erstellen Java Basics - Anfänger-Themen 7
D Java Ausdruck erzeugen / Formular Java Basics - Anfänger-Themen 4
B Boolscher Ausdruck für mich unverständlich Java Basics - Anfänger-Themen 7
A regulären Ausdruck mit Hilfe der Klasse Scanner in einem String finden Java Basics - Anfänger-Themen 2
J Frage zu bestimmtem Ausdruck Java Basics - Anfänger-Themen 2
G Lambda Ausdruck: Welche Methode ist die Richtige? Java Basics - Anfänger-Themen 1
C Auswertung Ausdruck mit Punknotation + Objekt als Parameter Java Basics - Anfänger-Themen 3
M Arithemtischer Ausdruck unklar Java Basics - Anfänger-Themen 2
A Lässt sich dieser Ausdruck irgendwie einfacher schreiben? Java Basics - Anfänger-Themen 4
H Regulären Ausdruck automatisch erstellen Java Basics - Anfänger-Themen 5
T Erste Schritte Im arithm. Ausdruck Zeichen trennen? Java Basics - Anfänger-Themen 13
D Boolescher Ausdruck - Problem Java Basics - Anfänger-Themen 6
R Suche Regex Ausdruck für HTML Java Basics - Anfänger-Themen 11
E Hilfe bei einem Regulären Ausdruck Java Basics - Anfänger-Themen 7
S Einfaches Regulaerer Ausdruck Problem Java Basics - Anfänger-Themen 7
3 3. Element mit regulären Ausdruck suchen Java Basics - Anfänger-Themen 12
M regex-Ausdruck irgendein Buchstabe 1 mal Java Basics - Anfänger-Themen 8
S Was bedeutet dieser ausdruck? Java Basics - Anfänger-Themen 9
S String nach Ausdruck durchsuchen und Folgeattribut ausgeben Java Basics - Anfänger-Themen 3
H Ausdruck vereinfachen Java Basics - Anfänger-Themen 8
J Datentypen String splitten ohne festen Ausdruck Java Basics - Anfänger-Themen 8
H while schleife ohne ausdruck Java Basics - Anfänger-Themen 7
H Datei durchsuchen mit Regex-Ausdruck Java Basics - Anfänger-Themen 14
O Gibt es dafür einen regulären Ausdruck? Java Basics - Anfänger-Themen 9
O RegEx-Ausdruck gesucht Java Basics - Anfänger-Themen 2
C bedingten ausdruck zu if-anweisung Java Basics - Anfänger-Themen 3
O Mal wieder ein Regex-Ausdruck gesucht! Java Basics - Anfänger-Themen 5
R Regulären Ausdruck geht nicht Java Basics - Anfänger-Themen 2
J Bitte um Erklärung für einen Java-Ausdruck Java Basics - Anfänger-Themen 8
T Wie sieht ein '.' im regulären Ausdruck aus? Java Basics - Anfänger-Themen 2
G Wie erstellt man komplexen regulären Ausdruck Java Basics - Anfänger-Themen 5
G Boolscher Ausdruck Java Basics - Anfänger-Themen 11
R Reguläre Ausdruck definieren Java Basics - Anfänger-Themen 3
G Substrings in regulärem Ausdruck Java Basics - Anfänger-Themen 2
F Boolescher Ausdruck (String) in boolean konvertieren Java Basics - Anfänger-Themen 5
F Der "super" Ausdruck Java Basics - Anfänger-Themen 4
S Ausdruck zur Laufzeit auswerten Java Basics - Anfänger-Themen 10
G Was zum Teufel ist denn so ein Ausdruck"variabel : vari Java Basics - Anfänger-Themen 8
M Scanner soll nach einem Ausdruck splitten Java Basics - Anfänger-Themen 2
R Ausdruck Java Basics - Anfänger-Themen 2
J Was sagt mir dieser Ausdruck? Java Basics - Anfänger-Themen 9
S Ausdruck? Java Basics - Anfänger-Themen 5
richis-fragen FileChannel (inChannel/outChanel) Fehler wenn Leerzeichen enthalten Java Basics - Anfänger-Themen 17
F Kann mir jemand bei dem Fehler helfen? Java Basics - Anfänger-Themen 6
Juelin jedit Fehler beim starten Java Basics - Anfänger-Themen 2
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
E Matrizenmultiplikation Fehler Java Basics - Anfänger-Themen 0
Z Fehler Zeiterfassungsprogramm Anzeige Java Basics - Anfänger-Themen 3
C SwingWorker mit Fehler Java Basics - Anfänger-Themen 2
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
G Compiler-Fehler Fehler in Zeile 1 beheben, wie? Java Basics - Anfänger-Themen 9
W Fehler in der Datei pom.xml Java Basics - Anfänger-Themen 19
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
ohneInformatik; Dynamische Zinsen. Wo liegt der Fehler? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben