Forum: PC-Programmierung Java: String.split(delim) Frage


von Jürgen W. (lovos)


Lesenswert?

Hallo,
ich habe folgendes Programm:
1
String s="1x2x3x4xxxxxxxxxxx";
2
String[] s1=s.split("x");
3
String s2=join(s1,"x");
4
System.out.println(s);
5
System.out.println("s1.length="+s1.length);
6
System.out.println(s2);

Der output ist
1
1x2x3x4xxxxxxxxxxx
2
s1.length=4
3
1x2x3x4

Ich haette erwartet, dass ich mehrere Leer-Strings bekomme,
und dass s1.length=15, d.h. ein Array der Laenge 15, da ich 14 x habe.
Wie kann man so ein Array erzeugen?

von TestX .. (xaos)


Lesenswert?

lies dir mal die api  doku dazu durch...
http://download.oracle.com/javase/1,5.0/docs/api/java/lang/String.html

stichwort regex

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Auch wenn die Doku verrät warum das so ist, hat es erst mal nix mit 
Regex zu tun:
>> This method works as if by invoking the two-argument split
>> method with the given expression and a limit argument of zero.
>> Trailing empty strings are therefore not included
>> in the resulting array

mit dem Aufruf:
1
String[] s1 = s.split("x", -1);
 erhält man das gewünschte Ergebnis.
1
1x2x3x4xxxxxxxxxxx
2
s1.length=15
3
[1, 2, 3, 4, , , , , , , , , , , ]

von Jürgen W. (lovos)


Lesenswert?

>mit dem Aufruf:
>String[] s1 = s.split("x", -1);
>erhält man das Gewünschte Ergebnis.
Danke.

If n  is non-positive then the pattern will be applied as many times as 
possible and the array can have any length. If n is zero then the 
pattern will be applied as many times as possible, the array can have 
any length, and trailing empty strings will be discarded.

Da hatte ich drueber gelesen.
Ich war irgendwie fixiert, dass man anhand der Regex das einstellen 
muesste.
An limit hatte ich gar nicht gedacht, dass es was damit zu tun haette.



>lies dir mal die api  doku dazu durch...
>stichwort regex

So ein Betrag laesst mich in die falsche Richtung weiterlaufen.
Ich denke mal, du hast das Problem gar nicht verstanden oder wusstest 
gar keine Loesung. Hast einfach gedacht, ich haette die Doku nicht 
gelesen (was eigentlich selbstverstaendlich ist und sowieso jeder tut)

von polat (Gast)


Lesenswert?

ich habe eine Frage:

String a  = "Der Lehrer ist nicht heute gekommen. Ali hat gesagt : \"los 
gehen wir spielen. Das Wetter ist sehr schön.\". Und wir haben zusammen 
Fußball gespielt."


ich möchte die Sätze haben, die nur Zitat " " enthalten.
Also den Satz : Ali hat gesagt : "los gehen wir spielen. Das 
Wetter.....".
wie kann ich das in java schreiben?

danke...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.