java 里如何使用BuferedReader按行读取,并且当下一行为空时结束读取

    之前一直在比较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;

        try{
        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");
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值