java中scannerapi_Java-API-Scanner

1.基本用法

//创建Scanner对象,使用其中一个构造方法

Scanner sc = new Scanner(System.in);//键盘录入

int i = sc.nextInt();//键盘录入一个整数存储在i中

System.out.println(i);

//这里只能录入一个整数,如果输入的是其它的,会报错

/*

* java.util.InputMismatchException:这个错误,我们可以直接复制java.util后面的Input类

* 在API中去搜索,结果是:

* 由 Scanner抛出,表示 Scanner到的令牌与预期类型的模式不匹配,或令牌超出预期类型的范围。

**/

2.hasNextInt() :判断录入的是否为Int型(hasNextXXX就是判断这个录入类型的)

//如果我们就想只能输入Int值,就需要调用另一个方法

//这个方法会判断用户录入的是否超出了Int的范围

Scanner sc = new Scanner(System.in);

if (sc.hasNextInt()){

//我们在保存这个录入之前,就判断这个录入是否是整数

int i = sc.nextInt();

System.out.println(i);

}else{

System.out.println("您输入的类型有误");

}

3.输入多个整数和多个字符串

//输入多个整数

Scanner sc = new Scanner(System.in);

System.out.println("请输入第一个整数:");

int i = sc.nextInt();

System.out.println("请输入第二个整数:");

int j = sc.nextInt();

int sum = i + j;

System.out.println("i+j=" + sum);

// public String nextLine():就是将录入的所有东西都以字符串保存

Scanner sc = new Scanner(System.in);

System.out.println("请输入第一个字符串:");

String str1 = sc.nextLine();

System.out.println("请输入第二个字符串:");

String str2 = sc.nextLine();

System.out.println("str1="+str1+"//str2="+str2);

4.同时录入字符串和整数会出现的问题

Scanner sc = new Scanner(System.in);

System.out.println("请输入第一个整数:");

int i = sc.nextInt();

System.out.println("请输入第二个字符串:");

String str2 = sc.nextLine();

System.out.println("str1=" +i+ ", str2="+str2);

//按上面的代码写下来,我们在执行到"请输入第二个字符串"就会跳过str2 = sc.nextLine()方法

//直接执行下面的打印方法

/*

* 分析问题原因:

* nextInt()是键盘录入整数的方法,当我们录入10的时候,

* 其实在键盘上录入的是10和\r\n,(\r\n:就是我们输入完10后,输入的回车符)

*nextInt()方法只获取10就结束了

* nextLine()方法是获取字符串的方法,可以接受任意类型

* 但是其通过\r\n来结束一行录入,遇到\r\n就证明你的输入结束

*所以上面我们输入了10和\r\n,所以nextLine()遇到了,就直接结束了

* */

#解决办法很简单—可以将所有的输入都用nextLine(),到时再转换类型就好了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值