# Java.util.Scanner



## Luk10 (7. Jan 2010)

Hallo,

Ich wollt kruz fragen wie die methode zum einlesen eines Strings auf der kommando-zeile heißt ...
Zum einlesen eines int's kann man ja nextInt () verwenden ... mit string klappts aber nicht ...

kann mir jemand helfen?

Danke


----------



## Sonecc (7. Jan 2010)

```
Scanner scn = new Scanner()
String in = scn.next()
```


----------



## Wuella (7. Jan 2010)

Sonecc hat gesagt.:


> ```
> Scanner scn = new Scanner()
> String in = scn.next()
> ```



In der Klasse Scanner gibt es keinen undefinierten Konstruktor.
Man muss ein Scanner Objekt mit System.in verknüpfen.

Wenn man mehrere Wörter einlesen will, ist die next() Methode ungeeignet. nextLine() hilft aus.


----------



## Sonecc (7. Jan 2010)

Wuella hat recht, in meinem exemplarischen Post, der nur darstellen sollte, dass die Methode nicht statisch ist, vergaß ich natürlich im Konstruktor System.in mit anzugeben....

Ansonsten:
next() liest ein Wort aus, nextLine() die ganze Zeile (sofern nicht vorher schon etwas ausgelesen wurde)


----------



## Luk10 (7. Jan 2010)

klappt nicht ... lässt sich zwar kompilieren aber weist den wert nicht zu ... zumindest nicht richtig


```
import java.util.*;

public class Passwort {
  private int loginnummer;
  private String passwort;
  private int zaehler;
  private String eingabeS;
  private int eingabeI;
  private boolean a;
  
    Passwort (int l, String p, int z) {
        loginnummer = l;
        String passwort = p;
        zaehler = z;
        a = false;
    }
    public void getEingabe () {
        Scanner sc = new Scanner (System.in);
        System.out.println ("Loginnummer eingeben: ");
        eingabeI = sc.nextInt ();
        System.out.println ("Passwort eingeben: ");
        eingabeS = sc.next ();
    }
    public void testeEingabe () {
        if (eingabeI == loginnummer && eingabeS.equals (passwort) && zaehler != 0) {
            System.out.println ("Zugang gewährt");
            a = true;
        }
        else { 
           if (zaehler == 0) {
               System.out.println ("keine Versuche mehr verbleibend");
           }
           else {
               System.out.println ("Zugang verwehrt");
               System.out.println (zaehler-1 + " Versuche verbeibend");
               zaehler--;
            }
        }
    }
    public static void test () {
        Passwort pw = new Passwort(123, "pw", 3);
        while (pw.zaehler != 0 && pw.a == false) {
            pw.getEingabe ();
            pw.testeEingabe ();
        }
    }
}
```


----------



## Sonecc (7. Jan 2010)

Luk10 hat gesagt.:


> klappt nicht ... lässt sich zwar kompilieren aber weißt den wert nicht zu ... zumindest nicht richtig



Exception?
Was hast du eingegeben? was kam raus? Welche der beiden Methoden hast du genutzt?


Edit: Der Post kam vor dem Edit mit dem Code, daher einfach ignorieren


----------



## Luk10 (7. Jan 2010)

die methode test ()rufe ich natürlich mit einer main () methode auf ...


----------



## Sonecc (7. Jan 2010)

Dein Konstruktor ist falsch, ersetze ihn mal hiermit:


```
Passwort (int l, String p, int z) {
        loginnummer = l;
        passwort = p;
        zaehler = z;
        a = false;
    }
```


----------



## Spin (7. Jan 2010)

Ich arbeite immer mit this und weiss dann ganz genau , was Membervariable und Lokale Variable ist.

Vielleicht hilf ja der Tipp, beim weiterprogrammieren , grüße


----------



## Luk10 (7. Jan 2010)

Ja, stimmt .... Das kommt davon wenn man keine Kaffee zur Hand hat ... was für ein dämlicher fehler, 

danke

Luk


----------



## Landei (7. Jan 2010)

Spin hat gesagt.:


> Ich arbeite immer mit this und weiss dann ganz genau , was Membervariable und Lokale Variable ist.
> 
> Vielleicht hilf ja der Tipp, beim weiterprogrammieren , grüße



Finde ich fürchterlich. Bei mir sind die Membervariablen eher "sprechend", und lokale Variablen etwas kürzer angebunden, da ist meistens klar, was was ist.


----------



## Sonecc (7. Jan 2010)

Landei hat gesagt.:


> Finde ich fürchterlich. Bei mir sind die Membervariablen eher "sprechend", und lokale Variablen etwas kürzer angebunden, da ist meistens klar, was was ist.



Geschmackssache, was nun besser ist, denke ich


----------

