当前位置: 代码迷 >> J2SE >> 为什么敲回车后它不停止输入呢?而是回车后换行还可以无限输入,实在是不知道错哪了
  详细解决方案

为什么敲回车后它不停止输入呢?而是回车后换行还可以无限输入,实在是不知道错哪了

热度:53   发布时间:2016-04-23 20:06:16.0
为什么敲回车后它不停止输入呢?而是回车后换行还可以无限输入,实在是不知道哪里错了
import java.io.*;
import java.util.*;

public class Test{

public static void main(String[] args)throws Exception{

BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\haha.txt"));

System.out.println("Please Enter Something:");

Scanner sc = new Scanner(System.in);

String s = sc.nextLine();

while(s != null){

bw.write(s);

bw.newLine();

s = sc.nextLine();

}

bw.flush();

bw.close();

}


------解决思路----------------------
你while循环只是判断不为null,回车不代表你输入的是null,那么也就会一直循环
------解决思路----------------------
回车取到的不是null,键盘上每一个都有对应的字符码的
------解决思路----------------------
Scanner 的 nextLine()是会读取回车的,但是想nextInt()之类的就不会,需要注意
------解决思路----------------------
引用:
那该怎么修改呢?就是意思是从键盘输入字符串后然后写入文件、、、怎么结束循环呢

你可以设定比如输入0作为结束,或者其他的呗。然后再程序中判断输入的是什么
------解决思路----------------------
要不你的while循环条件就不要写s != null,改成s!="你指定的结束字符串"或者试试while(s.length()!=0),连续两个回车退出循环
------解决思路----------------------
设定一个字符结尾不就好了嘛,也不一定要用while语句吧
------解决思路----------------------
注释掉bw.newLine()试下
------解决思路----------------------
以前学的java,现在忘了。
  相关解决方案