之前一直在比较Scanner和BuferedReader是否都能判断输入的为空行,先看一下BufferedReader如何,附上源代码:
import java.util.*;
import java.io.*; //引入util包和io
public class Main{
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] a = new String[20];
int i = 0;
while(!("").equals(a[i]=br.readLine())) { //这里是关键,将当前读到的行字符串与“”空字符串比较,当输入为空时,就跳出while循环,否则持续等待信息输入
i++;
}
} catch(IOException e) {
e.printStackTrace();
}
i = 0;
for(i=0; a[i]!=null;i++)
System.out.println(a[i]);
}
}
但是Scanner似乎不能这样做,只能通过CTRL+Z的方式退出,代码如下:
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//sc.useDelimiter("\n");
String a = new String();
while(sc.hasNext()&&!("").equals(a=sc.next())) { //这里如果不是空字符串倒是可以识别,比如aaa,当输入aaa时可以退出
System.out.println(a);
}
System.out.println("I'm out");
}
}