java的nextline_java中的nextline()「建议收藏」

java的nextline_java中的nextline()「建议收藏」今天在java上机课时遇到了个小问题,使用Scanner输入数据时,使用了一次nextInt(),一次nextLine(),却只接收了一个整数。代码如下code1:1packagecn.dx;23importjava.util.Scanner;45publicclassScannerTest{67publicstaticvoidmain(String[]args)…

大家好,又见面了,我是你们的朋友全栈君。

今天在java上机课时遇到了个小问题,使用Scanner输入数据时,使用了一次nextInt(),一次nextLine(),却只接收了一个整数。代码如下

code1:

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 package cn.dx;

2

3 import java.util.Scanner;

4

5 public class ScannerTest {

6

7 public static void main(String[] args) {

8 Scanner in = new Scanner(System.in);

9 System.out.println(“请输入一个整数”);

10 while(in.hasNextInt()){

11 int num = in.nextInt();

12 System.out.println(“请输入一个字符串”);

13 String str = in.nextLine();

14 System.out.println(“num=”+num+”,str=”+str);

15 System.out.println(“请输入一个整数”);

16 }

17 }

18 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

运行结果为:

请输入一个整数

1231

请输入一个字符串

num=1231,str=

请输入一个整数

第二个String类型的参数没有读取进来。

自己查看了下nextInt()和nextLine()方法的官方文档

nextLine()

Advances this scanner past the current line and returns the input that was skipped. This method returns the rest of the current line, excluding any line separator at the end. The position is set to the beginning of the next line.

nextInt()方法会读取下一个int型标志的token.但是焦点不会移动到下一行,仍然处在这一行上。当使用nextLine()方法时会读取改行剩余的所有的内容,包括换行符,然后把焦点移动到下一行的开头。所以这样就无法接收到下一行输入的String类型的变量。

之后改用了next()方法

code2.

48304ba5e6f9fe08f3fa1abda7d326ab.png

1 package cn.dx;

2

3 import java.util.Scanner;

4

5 public class ScannerTest {

6

7 public static void main(String[] args) {

8 Scanner in = new Scanner(System.in);

9 System.out.println(“请输入一个整数”);

10 while(in.hasNextInt()){

11 int num = in.nextInt();

12 System.out.println(“请输入一个字符串”);

13 String str = in.next();

14 System.out.println(“num=”+num+”,str=”+str);

15 System.out.println(“请输入一个整数”);

16 }

17 }

18 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

运行后结果是正确的,运行结果如下。

请输入一个整数

123

请输入一个字符串

sdjakl

num=123,str=sdjakl

请输入一个整数

213 jdskals

请输入一个字符串

num=213,str=jdskals

请输入一个整数

试验后发现next()方法是以换行或者空格符为分界线接收下一个String类型变量。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136398.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 数据库去重有几种方法_数据库去重有几种方法

    数据库去重有几种方法_数据库去重有几种方法MySQL数据库去重的方法​数据库最近有很多重复的数据,数据量还有点大,本想着用代码解决,后来发现用SQL就能解决,这里记录一下看这条SQLDELETEconsum_recordFROMconsum_record,(SELECTmin(id)id,user_id,monetary,consume_timeFROMconsum_recordGROUPBYuser_id,monetary,co…

  • MyEclipse6.5下struts2+spring2+hibernate3 整合

    MyEclipse6.5下struts2+spring2+hibernate3 整合

  • filezilla server中文版使用教程_filezilla安装步骤

    filezilla server中文版使用教程_filezilla安装步骤filezillaserver下载、安装、配置教程下载filezillaserver安装filezillaserverFileZillaServer的配置教程下载filezillaserverfilezillaserver官网:FileZilla-ThefreeFTPsolution:https://filezilla-project.org/安装filezill……………

  • 让AllocateHwnd接受一般函数地址作参数

    让AllocateHwnd接受一般函数地址作参数http://www.xuebuyuan.com/1889769.htmlClasses单元的AllocateHWnd函数是需要传入一个处理消息的类的方法的作为参数的,原型:functionAllo

  • 阻止中文输入时触发input事件

    阻止中文输入时触发input事件做限制输入框可输入最大的长度和实时匹配输入框数据时遇到了坑——当中文输入时input事件也会被触发,即假设限制的是2个字符,你要输入社会人的“社(she)”,就会直接被截取,输入框填充文本sh。或者是在中文输入法时也会一直去调接口,匹配数据,影响了页面的性能!代码如下:$(document).on(‘input’,’input’,function(){console.log(‘限制…

  • java定时任务实现的几种方式注解(JAVA定时任务)

    摘要:在开发测试工具的应用后台,经常听到同事说要做个定时任务把做日志处理,或者数据清理,包括做些复杂的业务计算逻辑,在选择定时任务的时候,怎么能够快速实现,并且选择一种更适合自己的方式呢?我这里把定时任务的实现收集整理了一些方法,希望可以帮到刚开始做定时任务的同学,写得不对的地方请指正。一在开发测试工具的应用后台,经常听到同事说要做个定时任务把做日志处理,或者数据清理,…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号