问答详情
源自:1-9 经验总结

关于控制台中输入字符,会把程序输出的字符覆盖!!怎么办?看代码

public static void main(String[] args) {

String[] a = { "论语","三字经"};

System.out.println("欢迎使用啪啪啪借阅系统:");

int n =0;

while(n==0){

try{

System.out.println("1.按书名借阅书籍      2.按序号借阅书籍");

//在控制台输入数字命令  ,这里可能出现异常

Scanner input = new Scanner(System.in);

int number = input.nextInt();

//如果控制台输入数字1

if(number==1){

//遍历数组,输出a[i]中的元素:各个书籍

for(int i=0;i<a.length;i++){

System.out.println(a[i]);

}

System.out.println("请输入您要借阅书籍的名称:");

//在控制台输入字符串 

Scanner input2 =new Scanner(System.in);

String name = input2.nextLine();

//对控制台输入的字符串进行  判断

if(name.equals(a[0])){

System.out.println("您要借阅的书籍为:"+a[0]);

}else if(name.equals(a[1])){

System.out.println("您要借阅的书籍为:"+a[1]);

}else{

System.out.println("您输入的书籍不存在");

}

}

//当控制台输入2 (用序号选择书籍时)

else{

//为了方便就没有遍历了

System.out.println("1.论语     2.三字经   "+"请输入序号:");

Scanner input3 = new Scanner(System.in);

   int number2 = input3.nextInt();

   //对控制台输入的序号进行判断,这里可能出现异常

   if(number2==1){

    System.out.println("您要借阅的书籍为:"+a[0]);

   }else if(number2==2){

    System.out.println("您要借阅的书籍为:"+a[1]);

   }else{

    System.out.println("请输入已提示的数字序号");

   }

}

n = 1;

//开始捕获可能出现的异常

}catch(InputMismatchException e){

System.out.println("命令输入错误,请根据提示输入数字命令");

n=0;

}catch(Exception e){

System.out.println("Exception系统未知故障");

n=0;

}finally{

System.out.println("啪啪啪");

n=0;

}    

 }     }


提问者:Ecin 2017-01-23 17:36

个回答

  • qq_养猫人_04353710
    2017-01-23 19:55:29
    已采纳

    http://img.mukewang.com/5885ee3d0001d45719201048.jpg

    您好啊同学,我刚才看了您写的代码,总的来说还是很好的.当然了,您的这个问题我以前也遇到过当时就没有去管他.

    刚才我看了一会代码,给你想了一个简单粗暴一点的方法,就是再"请输入您的balabala"那儿的前面加上\n

    就可以实现自动转行了.但是这个方法治标不治本,如图所示,在前面多了一行空格.你也可以试一试自己的方法,用这个原理把那行空格给弄走.另外\n的意思就是把光标转到下一行的意思.是在字符串中使用的,与此类似的还有\t和\r等.我这种属于是利用脑洞把问题解决的了蛤蛤蛤 ,另外如果有兴趣一起学习的话,1114196607这是我的QQ

  • Ecin
    2017-01-23 18:15:05

    http://img.mukewang.com/5885d72b00011d9803010234.jpg

    如图所示:论语俩字把程序输出的“论语” 覆盖掉了变绿了,本应该是在最后一排输出的,,,

  • Ecin
    2017-01-23 17:40:25

    我是个初学者,作业能写出来都对自己感觉不错了;如有前辈能不介意帮帮我,表示十分感谢!!!

    我的问题是:当控制台里提示:论语、三字经时;让用户输入字符时,光标不会自动转行,而是把程序中的汉字覆盖了,然后就没有然后。。。

    必须 自己把光标放在最下面才可以