Scanner中nextInt()和nextLine()方法解析

直接上代码

Scanner中nextInt()和nextLine()方法解析

输出结果

Scanner中nextInt()和nextLine()方法解析

结果分析

Scanner中nextInt()和nextLine()方法解析

nextInt()和nextLine()顺序互换代码如下

Scanner中nextInt()和nextLine()方法解析

输出结果

Scanner中nextInt()和nextLine()方法解析

结果分析

Scanner中nextInt()和nextLine()方法解析

解决方法

  1. 可以将nextLine()用next()替换
  2. . 两者nextLine()执行之前再加一个空nextLine()让这个空的清楚掉回车符再向下执行
  3. . nextInt()用nextLine()替换,最后进行类型转换

API截图如下

Scanner中nextInt()和nextLine()方法解析Scanner中nextInt()和nextLine()方法解析

总结:

  1. 第一张api截图中我们发现除了nextLine()之外,剩余方法没有什么区别,因此我们可以总结出它们和nextInt()一样,读取只读取回车符以前的内容,返回时会留下回车符其余内容清空,而nextLine()是读取所有返还回车符以前内容并清空所有;

  2. 第二张api截图netx()其实和nextInt()读取方式一样,也会读取回车符以前留下回车符,但有一点区别的是,它读取时后若队列中已有回车符,它就只读两个回车符中间的内容。如下图

Scanner中nextInt()和nextLine()方法解析