BenChuat 2024-03-12 22:12 采纳率: 70.4%
浏览 5
已结题

java的scanner问题

输入样例:
3
75 3
53 2
59 2
问题:为什么调试看的第一行读取一个整数没问题,然后读取第二第三行,也没问题,就是读取最后一行来到最后一次for里的nextline就有问题了,一直等待用户输入,如果这时候我敲入一个回车就结束了程序,但就不符合我的代码逻辑了呀,为什么最后一行的读取这么奇怪呢

img

img

img

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-03-14 03:18
    关注

    【相关推荐】



    • 这篇博客: 算法4-中兴捧月杯热身赛1素数判断-热身赛2亲和串-热身赛3旅游路线-中的 Scanner 类的next和nextLine方法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      Scanner类的方法

      方法名说明
      String next()查找并返回此扫描仪的下一个完整令牌
      不接收空格,在接收有效数据之前,所有的空格或tab键投被忽略,若有有效数据,则遇到这些键退出
      int nextInt()将输入的下一个标记扫描为int
      String nextLine()将此扫描仪推进到当前行并返回跳过的输入
      可以接收空格或tab键,输入以enter键结束

      代码

      // idea_algorithm 
      package offer2.Test423;
      
      import java.util.Scanner;
      
      public class StringnextLineDemo {
          public static void main(String[] args) {
              method1();
          }
          public static void method(){
              Scanner input = new Scanner(System.in);
              String s1 = input.next();
              String s2 = input.next();
              System.out.println(s1);
              System.out.println(s2);
              System.out.println(s1 + s2);
      
              // 键盘输入ABC(空格)DEF(空格)(空格)
              // 输出结果是:
              // ABC
              // DEF
              // ABCDEF
              // 分析:没有接收空格,要是接收了空格,那么最后的输出应该会有空格,ABC 和 DEF 之间的空格被当做 两个字符串之间的划分,表示输入的是两个字符串
          }
      
          public static void method1(){
              Scanner input = new Scanner(System.in);
              String s1 = input.next();
              String s2 = input.next();
              String s3 = input.nextLine();
      
              System.out.println(s1);
              System.out.println(s2);
              System.out.println(s3);
              System.out.println(s1 + s2);
              System.out.println(s1 + s2 + s3);
      
              // 键盘输入A(空格)B(空格)C(空格)D(空格)
              // 输出结果是:
              //A
              //B
              //(空格)C(空格)D(空格)
              //AB
              //AB(空格)C(空格)D(空格)
              // nextLine()方法可以接收空格或tab键。
          }
      }
      

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月22日
  • 已采纳回答 3月14日
  • 创建了问题 3月12日

悬赏问题

  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Linux权限管理相关操作(求解答)
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表
  • ¥15 DbVisualizer Pro 12.0.7 sql commander光标错位 显示位置与实际不符
  • ¥15 android 打包报错
  • ¥15 关于stm32的问题
  • ¥15 ncode振动疲劳分析中,noisefloor如何影响PSD函数?