解决Java 中while(Scanner.hasNext())死循环问题

解决Java 中while(Scanner.hasNext())死循环问题

摘要:最近几天在用牛客刷题,遇到需要使用Scanner输入的问题。这类题有时候并不会有提到设置终止符来停止Scanner的录入。在网上翻看了不少的方法,发现没有适用的(我用的是 idea编辑器)。下面先把前人的经验说一下(虽然我用的时候不起作用)

1.原文链接

这个方法我试了一下,当不输入内容,按两次 Enter 键,系统并没有退出



import java.util.Scanner;
/*
 *   按"Enter",读取每行输入的有效数据及最后自动结束
 */
public class ScannerEnd {
 	public static void main(String[] args) {
  		Scanner sc = new Scanner(System.in);
  		while (sc.hasNextLine()) {
   		String str = sc.nextLine();
   		if (str.isEmpty())
    			break;
   			System.out.println(str);
  		}
  		sc.close(); 
 	}  
}

2.

还有一个博主说 不想输入时 按下 “Ctrl + z”,就会终止录入,然并卵

我自己的

当不再输入内容时,按下 Enter 键,不再进入 while 循环,然后关闭录入端口。

import java.util.*;

public class Main{
	public static void main(String args[]){
		Scanner in = new Scanner(System.in);
		String input = new String();
		while (!(input = in.nextLine()).isEmpty()){
		
			System.out.println("out");
		}
		in.close();
	}
}
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值