A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© chao1 中级黑马   /  2016-4-10 00:10  /  350 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Scanner
hasNextInt():判断是否还有下一个输入项,其中Xxx可以是Int,Double等,如果需要判断是否包括下一个字符串,则可以省略Xxx
nextInt():获取下一个输入项,Xxx的含义和上个方法中的Xxx 相同,默认情况下
Scanner使用空格,回车作为分隔符
public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    if(sc.hasNextInt()) {
        int i = sc.nextInt();
        System.out.println(i);

        else{

        System.out.println()   
}}
}
bug问题:先用nextInt()接收int类型,接收int类型,在用nextLine()接收字符串的时候,会导致nextLine()直接把回车接收到了,nextLine不能继续接收字符串了
1)现获取一个数值后,在创建一个新的键盘录入对象获取字符串
2)把所有的数据都先按照字符串获取,然后要什么,你就对应转换什么

出现问题代码:
Scanner sc = new Scanner(System.in);
nextInt()是键盘录入整数的方法,当我们录入10的时候,其实在键盘上录入的是10和\r\n,nextInt()方法只获取10就结束了nextLine()是键盘录入字符串的方法,可以接收任意类型,通过\r\n,只要遇到就证明结束了

Scanner sc2 = new Scanner(System.in);  //在创建一个新的键盘录入对象就可以解决
System.out.println(System.in);
String.out.println("");
String line = sc.nextLine();
int i = Integer.parseInt(line);

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马