当前位置: 代码迷 >> Java相关 >> 我想把密码替换成*******这符号,但我不知怎么去实现-----------------大家 ...
  详细解决方案

我想把密码替换成*******这符号,但我不知怎么去实现-----------------大家 ...

热度:654   发布时间:2009-08-08 15:24:49.0
我想把密码替换成*******这符号,但我不知怎么去实现-----------------大家请进
import java.util.*;
public class Accp9_3 {
    public static void main(String[] args) {
       System.out.println("--欢迎进入学员注册系统--");
       Scanner input=new Scanner(System.in);
       System.out.print("请输入您的账号:");
       String  zhanghao=input.next();
       System.out.print("请输入您的密码:");
       String possword1=input.next();
       System.out.print("请确认您的密码:");
       String possword2=input.next();
       if (possword1.equals(possword2)){
           String mima=possword1=possword2;
           System.out.println("恭喜您,注册成功!!!");
           System.out.println("您的账号是: "+zhanghao + "您的密码是: "+mima+"\n请记好的您的账号和密码,以防遗忘!!! ");
       }else{
           System.out.println("密码不一致,请重新注册!!!");
       }
    }
}
搜索更多相关的解决方案: 密码  符号  

----------------解决方案--------------------------------------------------------
回复 楼主 gameohyes

你的是在cmd上运行的 好像不知道怎么弄 我以为是gui呢


----------------解决方案--------------------------------------------------------
我在Myeclipse里运行的。有法不??
----------------解决方案--------------------------------------------------------
楼主误解了,2楼说的GUI不是IDE
你要实现这个功能和在什么IDE下开发没关系,和程序有关
如果是在GUI下的我倒还可以
在CMD下的就等高手来解答吧,我也趁机看看
----------------解决方案--------------------------------------------------------
哦哦。呵,一起等高手来吧。一起学习
----------------解决方案--------------------------------------------------------
import java.util.*;
public class Accp9_3 {
    public static void main(String[] args) {
       System.out.println("--欢迎进入学员注册系统--");
       Scanner input=new Scanner(System.in);

        System.out.print("请输入您的账号:");
        String  zhanghao=input.next();
        EraserThread eraserThread = new EraserThread(); //启动线程
        eraserThread.start();
        System.out.print("请输入您的密码:");
        String possword1=input.next();
        System.out.print("请确认您的密码:");
        String possword2=input.next();
        eraserThread.setActive(false); //结束线程
            
           if (possword1.equals(possword2)){
               String mima=possword1=possword2;
               System.out.println("恭喜您,注册成功!!!");
               System.out.println("您的账号是: "+zhanghao + "您的密码是: "+mima+"\n请记好的您的账号和密码,以防遗忘!!! ");
           }else{
               System.out.println("密码不一致,请重新注册!!!");
           }

    }
}  

class EraserThread extends Thread {
    private boolean active;
    private String mask;
     
    public EraserThread() {
        this('*');
    }
     
    public EraserThread(char maskChar) {
        active = true;
        mask = "\010" + maskChar;
    }
     
    public void setActive(boolean active) {
        this.active = active;
    }
     
    public boolean isActive() {
        return active;
    }
     
    public void run() {
        while(isActive()) {
            System.out.print(mask);
            try {
                Thread.currentThread().sleep(50);
            } catch(InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
----------------解决方案--------------------------------------------------------
以下是引用lampeter123在2009-8-8 20:13的发言:EraserThread eraserThread = new EraserThread(); //启动线程
  不怎么看的懂哈,呵呵,我没学过那去。   最后那些更不怎么清楚了。    不过还是感谢你,因为你证明了是可以实现的。
----------------解决方案--------------------------------------------------------
刚测试了,成死循环了。在输入密码那。请检查
----------------解决方案--------------------------------------------------------
命令行下可以使用Console这个类
图形界面可以使用JPasswordField这个组件
----------------解决方案--------------------------------------------------------
以下是引用gameohyes在2009-8-8 22:22的发言:刚测试了,成死循环了。在输入密码那。请检查
我的测试是通过的, 类EraserThread是用来启动线程来不断循环输出退格+"*',为了掩盖你的password,只要 eraserThread.setActive(false); 就可以结束这个循环, 如果你的程序成死循环,你可能没有用eraserThread.setActive(false);
----------------解决方案--------------------------------------------------------
  相关解决方案