JavaRush /Blog Jawa /Random-JV /Kepiye ndhelikake karakter sandhi sajrone input konsol?
fatfaggy
tingkat
Киев

Kepiye ndhelikake karakter sandhi sajrone input konsol?

Diterbitake ing grup
Iki pitakonan. Aplikasi konsol, pangguna ngetik login lan sandhi. Nanging nalika ngetik sandhi, perlu kanggo "topeng" saben karakter sandhi kanthi tanda bintang, contone, utawa, kaya ing Linux, mung ora nampilake karakter apa wae nalika ngetik sandhi. Aku nemokake pilihan nggunakake thread kapisah kanggo iki. Katon kaya iki: package main; import java.io.*; public class Main { public static void main(String[] args) { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Enter username: "); String user = in.readLine(); Thread hide = new PasswordsHider("Enter password: "); hide.start(); String pass = in.readLine(); hide.interrupt(); } private static class PasswordsHider extends Thread { public PasswordsHider(String prompt) { super("Hiding passwords thread"); System.out.print(prompt); } @Override public void run() { while (!isInterrupted()) { System.out.print("\010"); try { Thread.sleep(1); } catch (InterruptedException e) { //e.printStackTrace(); } } } } } nanging sajrone eksekusi, tinimbang "nimpa" karakter sing dilebokake, akeh spasi mung ditampilake ing layar :) Aku nyoba nggunakake "\010*" tinimbang "\010", nanging banjur dadi tanda bintang. ditambahake ing saben spasi)) Nalika "\b" maneh wis akeh spasi ing output. Mungkin yen sampeyan mbukak saka baris printah bakal bisa, nanging ing teori - iki carane aku nulis. Aku krungu manawa iki minangka bug sing kurang prioritas ing Eclipse, nanging ora ana tembung babagan ide kasebut.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION