用Scanner遇到的问题

一、nextLine()放在nextInt()后面

Scanner sc1 = new Scanner(System.in);
int i = sc1.nextInt();
String s=sc1.nextLine();

nextLine()不能放在nextInt()后面,因为nextInt()在输入数字后回车,会在缓冲区留下“\n”的换行符,当nextLint()进行时会读取并自动输入null。
解决方案:
1、在nextInt()后面加一行 nextLine(),自动读走“\n”

2、用两个Scanner 对象,第二个对象会忽略之前多余的“\n”
Scanner sc1=new Scanner(System.in);
Scanner sc2=new Scanner(System.in);
int i= sc1.nextInt();
String s = sc2.nextLine();

3、各种数据全用nextLint()接收,再把string->int
Scanner sc1=new Scanner(System.in);
String i= sc1.nextLine();
int n=Integer.parseInt(i);//把字符串作为整型输出
String s = sc1.nextLine();

4、把nextLine换成next(),next会跳过开头的空格、回车

二、输入字符char

1、
Scanner sc=new Scanner(System.in);
char c = sc.next().charAt(0);

2、
接收char:接收字符串->字符数组->从数组里拿到这个字符

Scanner sc = new Scanner(System.in);
//接收字符串
String s = sc.nextLine();
//转换成字符数组
char[] arr=s.toCharArray();
//从数组里拿到这个字符
char c=arr[0];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值