关于next()输入判断问题的解决

import java.util.Scanner;
import java.util.StringTokenizer;
public class Test1 {
public static void main(String[] args) {
	//java中Scanner类中nextLine()方法与next()或nextInt()联用时可能出现一个常见的错误,
	//那就是当next()或者nextInt(),nextDouble()  、 nextFloat()用在nextLine的前面时。
	//nextLine会把前者的结束符“换行符”作为字符串读入,进而不需要从键盘输入字符串nextLine已经转向下一条语句执行,
	//原文链接:https://blog.csdn.net/uotail/article/details/71244553
	//可以在nextLine()前加一个nextline();或者直接换next();
//	System.out.println("请输入整数:");
//	Scanner scanner=new Scanner(System.in);
//	int i=scanner.nextInt();
//	System.out.println("请输入字符串");
//	scanner.nextLine();
//	String a=scanner.nextLine();
//	System.out.println("test");
	
	
	
	int choice;
	Scanner scanner=new Scanner(System.in);
	while(true) {
		System.out.println("测试");
		System.out.println("请输入你的选择");
		choice=scanner.nextInt();
		//scanner.close();
		switch (choice) {
		case 1:{
			System.out.println("退出程序");
			System.out.println("是否确认退出Y/N");
			//Scanner scanner2=new Scanner(System.in);
			String s=scanner.next();
			char c=s.charAt(0);
				if(c=='Y') {//判断出现了问题 应该用字符去判断。要不然加个回车符,因为next加载的字符是输入+回车(或者空格)
					scanner.close();//用完了,关闭输入
					System.out.println("退出");
					System.exit(0);
				}else {
					System.out.println("不退出");
					
					break;
				}
			
		}
			
		

		default:
			break;
		}
	}
}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值