Hilfe beim einlesen eines Strings mit Leerzeichen

Derenei

Aktives Mitglied
Ich habe ein Problem und zwar schreibe ich ein kleines Programm welches einen Kompletten String mit drei Namen einlist und alle drei in einer anderen form wieder ausgibt. Bin gerade erst beim ersten Namen.

Hier mein Programm:
Mein Problem am Anfang habe ich meinen String gleich mit "Max Moritz Mustermann" initialisiert.
Dann gibt mir das Programm auch Max aus. Wenn ich aber den String mit dem Befehl In.readWord () manuell einlese funktioniert es nicht(Lese ihn so ein:Max Moritz Mustermann).

Java:
public class Stringmanipulation
{
    public static void main ()
    {
        Out.print ("Geben Sie jetzt ihren kompletten Namen ein (Vorname - Zweitname - Nachanme): ");
        Out.println ();
        String name = "Max Moritz Mustermann";
        char []a = name.toCharArray ();
        String x = "";
        for (int i = 0; i < a.length; i++)
        {
            if (a[i] == (int)32)
            {
                x = name.substring (0, i);
                break;
            }
        }
        
        Out.print (x);
    }
}

Danke im Voraus
 
Was ist In? Für Benutzereingaben bietet sich die Klasse
Code:
java.util.Scanner
an.
 
Baue doch mal ein paar sys.out.printleins ein. Dann siehst du, was in den ganzen Variablen steht.

Und parallel mal das ganze auf einem Blatt papiert lösen, damit du verstehst, was da überhaupt passiert.
 
Okay ich hab das Problem gefunden, hab ein Mini Programm geschrieben welches einen String mithilfe des Befehls In.readWord () einlist und dann wieder ausgibt. Soweit so gut wenn man jetzt also "Max Moritz" einlist wird nur Max ausgegeben.

Wie lautet dann ein Befehl mit dem ich einen String mit Leertaste dazwischen einlesen kann,

Danke im Voraus.
 
Wie genau muss ich die Klasse Scanner benutzen will irgendwie nicht bei mir.

Info: Bei uns im Unterricht verwenden wir nur die Klasse In. zum einlesen von Zahlen...

z.b:
Java:
int a = In.readInt ();

Machen wird das im Unterricht Falsch???:L
 
Wie 'Final_Striker' bereits schrieb gehört die Klasse 'In' nicht zur Standardbibliothek.

So kann eine ganze Zeile mithilfe des Scanners eingelesen werden:
Java:
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
 
Wie genau muss ich die Klasse Scanner benutzen will irgendwie nicht bei mir.

Info: Bei uns im Unterricht verwenden wir nur die Klasse In. zum einlesen von Zahlen...

z.b:
Java:
int a = In.readInt ();

Machen wird das im Unterricht Falsch???:L

ihr selbst nicht ... aber euer lehrer ... weil er mit sowas überhaupt arbeitet ...

[ot]wie ich diese möchtegern-phreaks hasse die es einfach nicht auf die reihe bekommen SE zu nutzen ... *nicht an TO sondern dessen lehrer*[/ot]
 
Irgendwie funktioniert das mit dem einlesen mit dem scanner nicht richtig. Habe deinen Code meinem angepasst aber wenn ich übersätze steht da kann Methode Scanner nicht finden.
 
Danke an alle jetzt gehts

Hier mein fertiges Programm:
Java:
import java.util.Scanner;
public class Stringmanipulation
{
    public static void main ()
    {
        Out.println ("Geben Sie jetzt ihren kompletten Namen ein (Vorname - Zweitname - Nachanme, z.b Max Moritz Mustermann): ");
        Out.println ();
        Scanner scanner = new Scanner(System.in);
        String name = scanner.nextLine();
        name = name+" ";
        char []a = name.toCharArray ();
        String x = " ";
        String y = " ";
        String z = " ";
        int i = 0;
        int j = 0;
        int k = 0;
        for (i = 0; i < a.length; i++)
        {
            if (a[i] == (int)32)
            {
                x = name.substring (0, i);
                break;
            }
        }
        
        for (j = i+1; j < a.length; j++)
        {
            if (a[j] == (int)32)
            {
                y = name.substring (i+1, j);
                break;
            }
        }
        
        for (k = j+1; k < a.length; k++)
        {
            if (a[k] == (int)32)
            {
                z = name.substring (j+1, k);
                break;
            }
        }
        char []y1 = y.toCharArray ();
        Out.print (z+", "+x+" "+y1[0]+".");
    }
}
 

Zurück
Oben