Passwort Maskierung in der Konsole

  • Themenstarter Themenstarter ravi
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
R

ravi

Gast
Hallo erstmal,

ich bin gerade dabei ein nettes Rateprogramm zu programmieren. Doch nun komme ich an einer Stelle leider nicht weiter. Mein Problem ist folgendes:

- Ich will eine Zahl zwischen 0 und 100 eingeben
- wenn ich zum Beispiel 51 eingebe soll statt "51" nur "**" ausgegeben werden
(ich gebe erst 5 ein, dann kommt das erste *, danach gebe ich die 1 ein, dann erscheint das zweite * dahinter)
-> Zahl: **

Einigermaßen verständlich?

Früher in Turbo-Pascal war das kein Problem, dort habe ich es soch gemacht und s funktionierte ohne Probleme:
Code:
      pin:='';

      For i:=0 to 3 do begin

         c:=readkey;
         pin:=pin+c;
         write('*');

      end;

Meine ersten versuche in Java sahen so aus:
Code:
for ( int i=1; i<=3; i++ ) {
bs= (char) Console.readDouble();
z=z+bs;
Console.print("*"); 
 }

--> Ausgabe:
Code:
Zahl: 4
*5
*
Also ich muss immer erst Enter drücken, außerdem wird die Zahl noch angezeigt.

Bitte helft mir,
mit freundlich Grüßen!


[Edit by foobar: Titel präzisiert]
 
Du kannst in Java nicht viel mit der Konsole machen, vorallem das löschen von Zeichen ist (meines Wissens) nicht möglich.

Du könntest das JPasswortField aus Swing verwenden, dann musst du allerdings von der Konsole weg in die GUI-Programmierung...
 
Spontan würde ich einen Stream von der Tastatur nehmen und dann auslesen.

Code:
BufferedReader eingabe= new BufferedReader(
     new InputStreamReader(System.in));

String z="";
try{
while(z=eingabe.readChar()){ //Hoffe ich
//Code
}
}catch(InterruptedException e){}

Den Rest schreib mal selber, sonst lernst du nichts :wink:
 
Campino hat gesagt.:
Spontan würde ich einen Stream von der Tastatur nehmen und dann auslesen.

Code:
BufferedReader eingabe= new BufferedReader(
     new InputStreamReader(System.in));

String z="";
try{
while(z=eingabe.readChar()){ //Hoffe ich
//Code
}
}catch(InterruptedException e){}

Den Rest schreib mal selber, sonst lernst du nichts :wink:

also damit klappts nicht 🙁
ich schau mir jetzt ma das mim pw an 🙂
 
bzw der erkennt das
Code:
BufferedReader eingabe= new BufferedReader( 
     new InputStreamReader(System.in));
nicht... das wird als fehler unterstrichen... wie kann man dies einbinden?
 
Code:
BufferedReader eingabe= new BufferedReader(
     new InputStreamReader(System.in));

String z="";
try{
while(z=eingabe.readChar()){ //Hoffe ich
//Code
}
}catch(InterruptedException e){}

readChar() gibt es nicht ,auch in seit Java 5. Konnte zumindest nichts in API finden.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben