nur der erste (mehrerer Strings) wird ausgegeben

ernst

Top Contributor
Hallo allerseits,
wenn ich in dem einfachen Programm unten z.B. auf Konsole eingebe:
"Hallo wie geht es euch?"
wird nur hallo ausgegeben.
Der erste white space beendet offensichtlich den Eingabetext.
Die Variable str hat den Wert "hallo".
Ich hätte aber gern, daß str den folgenden Wert hat:
"Hallo wie geht es euch?"
Gibt es eine möglichst einfache Möglichkeit, daß der ganze Text (bis zur Betätigung der ENTER-Taste
in einer Variablen gespeichert wird ?

mfg
Ernst



Java:
import java.util.Scanner;

public class MainTest1 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);        
        String str;
        // Text über Tastatur eingeben
        str=scanner.next();
        System.out.println("str="+str);
    }
}
 
P

pappawinni

Gast
man könnte wohl auch mit readline arbeiten.

Java:
import java.io.*;

class Echo1
{
  public static void main(String[] args) throws IOException
  {
    InputStreamReader isr = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(isr);
    System.out.print("Gib was ein: ");
    String eingabe = br.readLine();
    System.out.println("Du hast " + eingabe + " eingegeben.");
  }
}

Von der Tastatur einlesen - Java als erste Programmiersprache - Javaschublade
 
P

pappawinni

Gast
Du brauchst natürlich eine Schleife, damit scanner.next()
solange wiederholt wird, bis scanner.nextToken() false ist.
 
S

Spacerat

Gast
@pappawinni: Der Scanner wurde mitunter ins Leben gerufen, um sich diese Konstrukte (mit InputStreamReader und Zeugs) zu ersparen. Aus "readNNN()" wird zwar "nextNNN()" (das gilt auch für Line), aber sonst ist's relativ das gleiche und man hat sogar noch einen Tokenizer gratis.

@Marcinek: ... oder einfach "nextLine()" aufrufen.
 
Zuletzt bearbeitet von einem Moderator:
P

pappawinni

Gast
Gut.. wenn der TO halt eben nur die Zeile lesen will und auf Tokenizer sch...
Jedenfalls muss man nicht jedes Wort einzeln lesen, um das nachher wieder zur Zeile zusammen zu setzen.
Das wär wohl von hinten durch Brust ... denk ich.
 

Pentalon

Bekanntes Mitglied
Er meint (denke ich) so:

Java:
{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);        
        String str = "";
        // Text über Tastatur eingeben
        String wort;
        
        do {
            wort = scanner.next();
        	str+= " "+wort;
        }
        while (scanner.hasNext());
        
        System.out.println("str="+str);
    }
}

Jedoch muss man die Eingabe mit STRG-Z beenden.

Pentalon
 
M

Marcinek

Gast
Scanner (Java Platform SE 7 )

Bisschen lesen schadet nicht.

--

Ja die Lösung mit nextLine() scheint hier besser angebracht, weil next() am ende der Zeile auf weitere eingabe wartet. Man müsste dann nicht nur hasNext() prüfen, sondern am Ende noch prüfen ob das letzte Token mit \n endet.
 
Zuletzt bearbeitet von einem Moderator:
S

Spacerat

Gast
Bei mir gibt es keine Methode
scanner.nextToken()

mfg
ernst
:lol: Bei mir auch nicht. Das habe ich wohl auch völlig überlesen. "nextToken()" dürfte wohl ein überbleibsel an Angewohnheit sein, welche aus diesen "InputStreamReader und Zeugs"-Konstrukten resultierte. Der "Fauxpas" sei ihm verziehen.
 

ernst

Top Contributor
Ja die Lösung mit nextLine() scheint hier besser angebracht, weil next() am ende der Zeile auf weitere eingabe wartet. Man müsste dann nicht nur hasNext() prüfen, sondern am Ende noch prüfen ob das letzte Token mit \n endet.
Warum funktioniert dann das folgende Programm nicht?

Java:
package test1;
import java.util.Scanner;
public class MainTest1 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);        
        boolean b=true;
        String str;
        // Text über Tastatur eingeben
        do{
            str=scanner.nextLine();
            System.out.println("str="+str);                        
            // ENTER-Taste wurde gedrückt
            if(str.equals("\n"))
                b=false;
        }while(b);
    }
}
 
M

Marcinek

Gast
Weil es eine Endlosschleife generiert? Und nextLine () ist ein blockierender aufruf ;D

Die Abbruchbedinung ist falsch. \n steht am Ende.

Du hast ZWei Lösungen in einer verpackt ;)

Entweder next() oder readLine(). Ich würde einfach ReadLine () nehmen.
 
S

Spacerat

Gast
Ausserdem: Analog zum "ursprünglichen" "readLine()" wird auch hier dieses ENTER ("\n") verschluckt (also nicht an den String angefügt).
@Marcinek: Macht der Gewohnheit? Wie wär's mit "nextLine()"? ;)
 
P

pappawinni

Gast
hm... was heisst es funktioniert nicht ?
Es tut ja schon was, jedenfalls bei mir.
Du hast nur jetzt zwei Sachen miteinander vermischt.

Anfangs wolltest du nur eine Zeile lesen.
Dafür würdest du aber keine Schleife benötigen, sondern nur eben str=scanner.nextLine();

Jetzt hattest du aber mit str=scanner.next() gearbeitet.
Das geht prinzipiell wohl auch. Ist aber umständlich, wenn es nur darum geht eine Zeile zu lesen,
weil du dann eine Schleife benötigst, um die Worte einzeln zu lesen...

Also das war eigentlich das was du wolltest, wenn ich es richtig verstanden hatte:
Java:
import java.util.Scanner;

public class MainTest1 {
 
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);        
        boolean b=true;
        String str;
        // Text über Tastatur eingeben
        str=scanner.nextLine();
        System.out.println("str="+str);                        
    }
}
 
Zuletzt bearbeitet von einem Moderator:

ernst

Top Contributor
hm... was heisst es funktioniert nicht ?
Es tut ja schon was, jedenfalls bei mir.
Du hast nur jetzt zwei Sachen miteinander vermischt.

Anfangs wolltest du nur eine Zeile lesen.
Dafür würdest du aber keine Schleife benötigen, sondern nur eben str=scanner.nextLine();

Jetzt hattest du aber mit str=scanner.next() gearbeitet.
Das geht prinzipiell wohl auch. Ist aber umständlich, wenn es nur darum geht eine Zeile zu lesen,
weil du dann eine Schleife benötigst, um die Worte einzeln zu lesen...

Also das war eigentlich das was du wolltest, wenn ich es richtig verstanden hatte:
Java:
import java.util.Scanner;

public class MainTest1 {
 
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);        
        boolean b=true;
        String str;
        // Text über Tastatur eingeben
        str=scanner.nextLine();
        System.out.println("str="+str);                        
    }
}

Du hast es auf den Punkt gebracht!!
Ich wollte nur eine Zeile (mit whitespaces) komplett einlesen.
Dank an alle.

mfg
ernst
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
MarvinsDepression Datentypen Generics: Erste Berührungen Java Basics - Anfänger-Themen 6
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
Zwanglos Warum wird nur die erste Zeile im while Block ausgeführt? Java Basics - Anfänger-Themen 8
3 OOP erste Versuche, OOP zu verstehen. Probleme mit gettern und settern Java Basics - Anfänger-Themen 4
F nur das erste Element mit iterator ausgeben Java Basics - Anfänger-Themen 5
J Objekt erste freie Stelle zuweisen Java Basics - Anfänger-Themen 3
Zrebna Compiler-Fehler Java-Compiler wird nach 'javac' keyword-Eingabe nicht gestartet (Erste Übung) Java Basics - Anfänger-Themen 18
Textsurfer Erste Schritte Ist es der erste Schleifendurchlauf? Java Basics - Anfänger-Themen 4
V Erste Schritte Hilfe gesucht beim einstieg in Java und erste Aufgaben aus der Berufsschule Java Basics - Anfänger-Themen 9
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
C Erste Ziffer einer Zahl Java Basics - Anfänger-Themen 46
L Erste Schritte Erste Versuche mit Server und Client Java Basics - Anfänger-Themen 7
V Klassen Bestimmen Sie die erste und letzte Position an der ein 'c' steht? Java Basics - Anfänger-Themen 3
Crazynet jTable erste Zeile mit deffinierten Werten Java Basics - Anfänger-Themen 0
B Kreuzprodukt zweier Vektoren (Erste Java Aufgabe - Hilfestellungen und Tips erwünscht) Java Basics - Anfänger-Themen 4
Tarrew Generics: Erste gemeinse Oberklasse als Rückgabewert Java Basics - Anfänger-Themen 1
N InsertionSort sortiert erste Zahl im Array nicht mit? Java Basics - Anfänger-Themen 6
I String abschneiden erste und letzte Zeichen Java Basics - Anfänger-Themen 3
U Wie bekomme ich bei der Ausgabe das erste Komma weg Java Basics - Anfänger-Themen 8
S Erste App Java Basics - Anfänger-Themen 2
johnnydoe Erste Schritte Erster Blick - erste Fragen Java Basics - Anfänger-Themen 11
Farbenfroh Erste GUI Versuche Java Basics - Anfänger-Themen 1
R Java als erste Programmiersprache 5 Auflage Java Basics - Anfänger-Themen 0
N Erste Zeile bei BufferedReader doppelt lesen? Java Basics - Anfänger-Themen 2
L Das erste Mal GridBagLayout - wie geht das? Java Basics - Anfänger-Themen 5
O Erste Versuche eine Art "EventHandler" zu bauen.. Java Basics - Anfänger-Themen 8
H Worauf bezieht sich die erste else-Anweisung Java Basics - Anfänger-Themen 9
C Meine erste Funktion Java Basics - Anfänger-Themen 12
O erste Loggingversuche Java Basics - Anfänger-Themen 12
A Meine erste Bibliothek erstellen Java Basics - Anfänger-Themen 24
A Mit javac zweite Datei compilieren ohne Erste erneut zu compilieren? Java Basics - Anfänger-Themen 7
P HILFE !!! erste aufgabe beim programmieren Java Basics - Anfänger-Themen 13
T Erste Programm Java Basics - Anfänger-Themen 9
T Das erste Programm starten Java Basics - Anfänger-Themen 27
L Erste Klasse Java Basics - Anfänger-Themen 12
P Textdatei auf erste Zeichenkette Prüfen... Java Basics - Anfänger-Themen 10
R Erste und zweite Stelle einer Eingabe auslesen Java Basics - Anfänger-Themen 2
M Meine erste Java Programmierung funzt nicht :-( Java Basics - Anfänger-Themen 34
U Erste Ziffer abspalten Java Basics - Anfänger-Themen 3
J Erste und letzte Zeile in txt Java Basics - Anfänger-Themen 3
J Erste OO-Aufgabe-Probleme mit Aufgabenstellung Java Basics - Anfänger-Themen 32
J Erste Gehvesuche Java Basics - Anfänger-Themen 3
C Erste GUI - Wie auswerten? Java Basics - Anfänger-Themen 3
B Das erste Programm . Java Basics - Anfänger-Themen 4
R Meine erste Klasse: Punkt Java Basics - Anfänger-Themen 3
L beim ersten compilen schon erste probleme Java Basics - Anfänger-Themen 8
G erste Schritte in Fenster und Grafik-Programmierung Java Basics - Anfänger-Themen 2
L JTabel abfragen ob es eine erste Zeile gibt? Java Basics - Anfänger-Themen 2
Q An erste Stelle in eine Queue eintragen Java Basics - Anfänger-Themen 4
C Generische Klassen, das erste Mal. Java Basics - Anfänger-Themen 8
J Neuling und erste Fragen Java Basics - Anfänger-Themen 8
R Erste Schritte,erste Class,Korrekturlesen und Verbesserungen Java Basics - Anfänger-Themen 3
T Erste Schritte (SEHR mühsam); Grafiktest Java Basics - Anfänger-Themen 5
D String, erste zeichen löschen Java Basics - Anfänger-Themen 6
J Threads: warten bis erste aktion ausgeführt wurde Java Basics - Anfänger-Themen 6
V Erste Ziffer aus einer dreistelligen "Zahl" heraus Java Basics - Anfänger-Themen 5
G Meine erste IF Abfrage Java Basics - Anfänger-Themen 11
A erste Schritte auf dem Weg eine XML-Datei zu parsen Java Basics - Anfänger-Themen 2
D Erste und letzte 3 Buchst. eines Str. in jeweils ein Array Java Basics - Anfänger-Themen 13
F Erste Schritte in Java - Wo finde ich Antworten? Referenzbib Java Basics - Anfänger-Themen 3
H Nur die erste Zeile einer Datei auslesen Java Basics - Anfänger-Themen 3
E Erste Schritte - warum läuft nur das eine? Java Basics - Anfänger-Themen 2
R Nur erste Zeile wird ausgelesen Java Basics - Anfänger-Themen 4
K Wortanzahl in erste Zeile schreiben Java Basics - Anfänger-Themen 6
W warum öffnet der nur die erste datei???? Java Basics - Anfänger-Themen 5
D erste spalte eines zweidimensionales Array sortieren ??!! Java Basics - Anfänger-Themen 2
W Gleichzeitiges ersetzen mehrerer Strings Java Basics - Anfänger-Themen 7
R Attribute mehrerer Objekte ausgeben Java Basics - Anfänger-Themen 3
C Finden mehrerer Lösungen Java Basics - Anfänger-Themen 0
P Klassen Berechnen mehrerer Map-Werte Java Basics - Anfänger-Themen 13
T Auslesen mehrerer jComboBox (-en) Java Basics - Anfänger-Themen 4
L Objekte zählen mehrerer Unterklassen Java Basics - Anfänger-Themen 3
L Zusammenführen mehrerer .txt Dateien Java Basics - Anfänger-Themen 4
E Allgemein Verständnissfrage zum Ablauf mehrerer Threads Java Basics - Anfänger-Themen 4
G Serialisieren mehrerer Objekte in EINE (XML)-Datei Java Basics - Anfänger-Themen 12
A Ausgabeanweisungen mehrerer Operanden Java Basics - Anfänger-Themen 4
G Gesamten clickCount mehrerer JPanels herausfinden Java Basics - Anfänger-Themen 5
F Problem mit Auslesen mehrerer jComboBoxen Java Basics - Anfänger-Themen 6
G Zusammenfassung mehrerer jar-Files Java Basics - Anfänger-Themen 3
G auf ende mehrerer threads warten Java Basics - Anfänger-Themen 2
Z Verschachteln mehrerer Arrays/Objekte (Telefonlisten) Java Basics - Anfänger-Themen 16
R Datentypen Das Verhalten von Strings als Datentypen Java Basics - Anfänger-Themen 7
N Nachkommastellen von Strings Java Basics - Anfänger-Themen 3
T Strings unveränderlich???? Java Basics - Anfänger-Themen 22
B Alle Strings bis zu einer Maimallänge aufzählen, die Bedingung erfüllen Java Basics - Anfänger-Themen 13
S Die durchschnittliche Länge der Strings Java Basics - Anfänger-Themen 11
M Operatoren Strings mit Vergleichsoperatoren, funktioniert das? Java Basics - Anfänger-Themen 9
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
P9cman Tipps für Rekursive Aufgaben mit Strings oder allgemein Java Basics - Anfänger-Themen 2
sserio StringBuilder und Strings Java Basics - Anfänger-Themen 8
J Größe eines Strings in Pixel Java Basics - Anfänger-Themen 18
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
N Strings verpflechten Java Basics - Anfänger-Themen 4
G Strings auf Gleichheit prüfen - Aufgabe vom Prof. Java Basics - Anfänger-Themen 5
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
L Strings aneinanderhängen Java Basics - Anfänger-Themen 2
M Strings vergleichen Java Basics - Anfänger-Themen 10
Nerdinfekt BMI Rechner, fehler beim Zurückgeben des Strings? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben