Satz abkürzen

Status
Nicht offen für weitere Antworten.
H

Heidi

Gast
Hallo Leute,

ich lerne gerade ein wenig Java und hätte da eine Frage. Ich habe einen Satz und möchte die ersten 5 Wörter ausgeben. Wie kann ich das machen? Soll ich die Leerzeichen zählen?
Danke für eure Hilfe.

heidi
 
H

Heidi

Gast
Aber dann habe ich immer noch den ganze Satz und nicht die ersten 5 Wörter des Satzes. Gibt es was womit ich die Leerzeichen zählen kann?
 

Ebenius

Top Contributor
Heidi hat gesagt.:
Ich habe einen Satz und möchte die ersten 5 Wörter ausgeben. Wie kann ich das machen?

Code:
System.out.println("Hallo ich bin ein Satz mit zu vielen Worten"
      .replaceAll("\\s*((?:[^\\s]+\\s+){0,4}[^\\s]+)\\s+.*", "$1"));
Mein Programm hat gesagt.:
Hallo ich bin ein Satz

Heidi hat gesagt.:
Soll ich die Leerzeichen zählen?

Wozu?
 
G

Gast

Gast
String[] str = satz.split(" ");
for(int i=0;i<5;i++){
System.out.println(str);
}

Das gibt dir die ersten 5 Wörter aus.
 

ARadauer

Top Contributor
vielleicht wegen der lesbarkeit? Eine Schleife in der die Leerzeichen gezählt werden und wo dann nach 5 leerzeichen ein substring von 0 bis zur aktuellen postion gemacht wird, ist auf jeden fall wartbarer als dein regex Ausdruck.. den nicht jeder kann regex!

klar deins ist schlanker, aber manchmal ist die plumpere lösung auch die die am einfachsten zu warten ist.
 
H

Heidi

Gast
Damit bekomme ich aber nur die ersten 5 Buchstaben, nicht die Wörter.
 

ARadauer

Top Contributor
Code:
     String text = "Hallo ich bin ein Satz mit zu vielen Worten";
     int leerzeichen = 0;
     for(int i = 0; i<text.length(); i++){
        if(text.charAt(i)== ' '){
           leerzeichen++;
           if(leerzeichen==5){
              text = text.substring(0, i);
           }        
        }        
     }
     
     System.out.println(text);
 

Ebenius

Top Contributor
ARadauer hat gesagt.:
klar deins ist schlanker, aber manchmal ist die plumpere lösung auch die die am einfachsten zu warten ist.

Moment mal. Wenn sie den Anfang des Satzes haben möchte, dann ist es wohl wichtig, den Satz nicht zu zerhacken. Sie wollte nicht die ersten fünf Worte haben, sondern den Satzteil. Das schon macht einen Unterschied, sobald jemand mehrere Leerzeichen hintereinander macht.

Wenn die Aufgabe wäre "Wir bekomme ich die ersten fünf Worte einzeln", würde ich auch Split nehmen.

[ edit ] Wenn ich mir jetzt die Aufgabenstellung nochmal durchlese, denke ich auch, dass Split besser passt. :-D Sie will wohl die ersten Worte wirklich einzeln.

Ebenius
 
H

Heidi

Gast
Hab das mal grad versucht, aber ich verstehe nicht ganz wofür die \\s stehen. Ich stell mich doof an, ich weiss, aber ich wäre echt dankbar, wenn du das kurz erklären könntest.
 

Der Müde Joe

Top Contributor
Code:
String satz = "Ich bin ein langer langer Satz mit vielen Wörtern";
String[] str = satz.split(" ");
for(int i = 0 ; i < 5 ; i ++) {
	System.out.println(str[i]);;
}

Nebenwirkungen wie ArrayIndexOutOfBoundsException kommen gratis dazu ;-)
 

Templon

Bekanntes Mitglied
Der Müde Joe hat gesagt.:
Nebenwirkungen wie ArrayIndexOutOfBoundsException kommen gratis dazu ;-)

Code:
String satz = "Zu kurz";
		String[] str = satz.split(" ");
		for (int i = 0; i < Math.min(str.length, 5); i++) {
			System.out.println(str[i]);
		}

Um böse Nebenwirkungen zu vermeiden =)
 
G

Guest

Gast
Templon hat gesagt.:
Der Müde Joe hat gesagt.:
Nebenwirkungen wie ArrayIndexOutOfBoundsException kommen gratis dazu ;-)

Code:
String satz = "Zu kurz";
		String[] str = satz.split(" ");
		for (int i = 0; i < Math.min(str.length, 5); i++) {
			System.out.println(str[i]);
		}

Um böse Nebenwirkungen zu vermeiden =)

Geschickt gelöst, muss ich mir merken =)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
K mit String.splitt(",") ganzen Satz erhalten? Java Basics - Anfänger-Themen 3
Z Satz aufteilen und die Wörter zählen (HashMap) Java Basics - Anfänger-Themen 15
V Erste Schritte Vokale im Satz ersetzen Java Basics - Anfänger-Themen 20
O Großbuchstaben im Satz zählen Java Basics - Anfänger-Themen 6
D Vokale auslesen in Satz Java Basics - Anfänger-Themen 7
L Wertebereich if-Satz angeben (z.B: Benzinverbrauch 51 <=75<) Java Basics - Anfänger-Themen 1
U Primfaktorzerlegung m. kleinem Fermat-Satz Java Basics - Anfänger-Themen 4
C Stringeingabe: kein Satz wegen Leerzeichen möglich Java Basics - Anfänger-Themen 3
T Erste Schritte Eingelesenen Satz - Wörter und Leerzeichen getrennt in 2x Array's Java Basics - Anfänger-Themen 7
D Satz des Pythagoras Java Basics - Anfänger-Themen 30
S Satz des Pythagoras Java Basics - Anfänger-Themen 9
S ein Satz aus einer Datei in eine andere Datei Speichern? Java Basics - Anfänger-Themen 5
B Satz Zufallszahlen ohne Wiederholung Java Basics - Anfänger-Themen 14
B if(object== null) abkürzen? Java Basics - Anfänger-Themen 6
D Java Action abkürzen Java Basics - Anfänger-Themen 9
I Null-Überprüfung durch Lambda-Expressions abkürzen Java Basics - Anfänger-Themen 8
E Bedingungen abkürzen Java Basics - Anfänger-Themen 13
M Arrays.asList abkürzen? Java Basics - Anfänger-Themen 4
M OOP Aufruf vieler Getter Methoden abkürzen? Java Basics - Anfänger-Themen 7
D Java-Prog. abkürzen ? Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben