import java.util.Scanner;
 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);//如果这里改成System.out.println(mask)运行结果就大大不一样了,不信大家试试看     try
    {
  Thread.currentThread().sleep(50);
    }
     catch(InterruptedException e)
    {
   e.printStackTrace();
    }
}
}
}public class EraserThreadDemo
{
public static void main(String []args)
{
Scanner scanner=new Scanner(System.in);
String kaishi="yes";
while(kaishi.equals("yes"))
{
System.out.println("输入名称:");
String name=scanner.next();
System.out.println("输入密码:");
EraserThread eraserThread=new EraserThread('#');
eraserThread.start();
String password=scanner.next();
eraserThread.setActive(false);
if("qinjuan".equals(name) &&"123456".equals(password))
{
   System.out.println("欢迎");
}
else
{
System.out.println("密码或用户名错误");
}
System.out.println("请输入Yes Or NOt");
kaishi=scanner.next();
}
}
}并要解释详细点,拜脱了,等待高手解惑中

解决方案 »

  1.   

    一个 是换行打印#
    一个 是不换行打印 #这个 最基本的 代码了。。println;print的区别。
      

  2.   

    不是这样的,你自己将代码分别运行一下就知道了,println()和print()的区别我还不知道啊。这个具体是有关线程的问题,结果不一样
      

  3.   

    没发现什么特殊的啊,效果都一样,只不过println是换行打印的,其他效果都一样啊
    qinjuan啊,不明白你这个问题是什么
      

  4.   

    System.out.println()打印完换行
    System.out.print()打印不换行
      

  5.   

    如果是print()的话(也就是不换行打印),在要求输入密码时,例如输入(123456),则黑屏上显示出来的是(#######),而要是换成println()打印时,则是过一会儿就打印一个#当然是换行打印黑屏显示的是#
    #
    #
    #



    随着时间的增长而增长,而不是等待输入密码的时候,输入一个字符就显示一个#
    各位明白我的意思了吗
      

  6.   

    http://topic.csdn.net/u/20070316/23/a23c38ad-4cfe-423f-b498-b89f48c9b46e.html楼主看下这个帖子,似乎会有点感悟。。