演示使用Scanner的小技巧

Scanner 类

案例:演示使用Scanner的小技巧

问题描述:先用nextInt()接受整数,然后再用nextLine()接受字符串,导致字符创无法接受。

产生原因:

​ 1.nextInt()方法的结束标记是: \r \t,但是该方法只接受整数,不接受\r \t。

  1. nextLine()方法的结束标记是: \r \t,识别到上边遗留下来的 \r \t后,直接结束了

    原代码

    public static void main(String... args) {
          //1.创建对象
          Scanner sc = new Scanner(System.in);
          //2.提示用户输入
          System.out.println("请输入一个整数:");
          //3.调用输入方法,并输出
          int num = sc.nextInt();
          System.out.println("num:" + num);
    
          //接受并输出,字符串
          System.out.println("请输入一个字符串:");
          String str = sc.nextLine();
          System.out.println("str:" + str);
    }
    

    解决方案:

    1.采用next()方法解决

    注意:next()方法结束的标记是空格。

    public static void main(String... args) {
          //1.创建对象
          Scanner sc = new Scanner(System.in);
          //2.提示用户输入
          System.out.println("请输入一个整数:");
          //3.调用输入方法,并输出
          int num = sc.nextInt();
          System.out.println("num:" + num);
    
          //接受并输出,字符串
          System.out.println("请输入一个字符串:");
          String str = sc.next();    //使用next()方法
          System.out.println("str:" + str);
    }
    

2.重新调用一次nextLine()

public static void main(String... args) {
      //1.创建对象
      Scanner sc = new Scanner(System.in);
      //2.提示用户输入
      System.out.println("请输入一个整数:");
      //3.调用输入方法,并输出
      int num = sc.nextInt();
      System.out.println("num:" + num);

      //接受并输出,字符串
      System.out.println("请输入一个字符串:");
      sc.nextLine();   //再次调用sc.nextLine(),抵消上一\r\t
      String str = sc.nextLine();
      System.out.println("str:" + str);
}

3.重新new一个Scanner对象

public static void main(String... args) {
      //1.创建对象
      Scanner sc = new Scanner(System.in);
      //2.提示用户输入
      System.out.println("请输入一个整数:");
      //3.调用输入方法,并输出
      int num = sc.nextInt();
      System.out.println("num:" + num);

      //接受并输出,字符串
      System.out.println("请输入一个字符串:");
      sc = new Scanner(System.in);		//重新new一个Scanner对象
      String str = sc.nextLine();
      System.out.println("str:" + str);
}

4.实际开发中,都用字符串接受用户输入的参数,然后把字符创类型的数字转化成对应的int类型的数字即可。

调用Inter.parseInt()方法将字符串数字转化为int数字

public static void main(String... args) {
    //1.创建对象
    Scanner sc = new Scanner(System.in);
    //2.提示用户输入
    System.out.println("请输入一个整数:");
    //3.调用输入方法,并输出
    String s1 = sc.nextLine();
    //将字符串类型的数字转化为int类型
    int num = Integer.parseInt(s1+3);
    System.out.println("num:" + num);

    //接受并输出,字符串
    System.out.println("请输入一个字符串:");
    String str = sc.nextLine();
    System.out.println("str:" + str);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A_Zhong20

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值