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

code1:

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 }

运行结果为:

请输入一个整数

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.

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 }

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

请输入一个整数

123

请输入一个字符串

sdjakl

num=123,str=sdjakl

请输入一个整数

213 jdskals

请输入一个字符串

num=213,str=jdskals

请输入一个整数

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

java的nextline_java中的nextline()相关推荐

  1. java scan.next_Java使用scanner.nextLine()

    尝试使用java.util.Scanner中的nextLine()方法时遇到麻烦. 这是我尝试过的: import java.util.Scanner; class TestRevised { pub ...

  2. java中使用nextLine(); 没有输入就自动跳过的问题?

    [问题分析] 必要的知识:in.nextLine();不能放在in.nextInt();代码段后面 否则in.nextLine();会读入"\n"字符,但"\n" ...

  3. java nextline next_java中的nextLine函数

    今天在学习java异常处理的时候,下面这段程序中的nextLine()的用法怎么也看不明白.初学者看到这段代码会误以为程序中的input.nextLine()这句是多余的.其实,不使用这句的话,如果输 ...

  4. 用 for/in 在 Java 5.0 中增强循环

    http://www.ibm.com/developerworks/cn/java/j-forin.html 简介: for/in 循环通常叫作 增强的 for 或者 foreach,它是 Java ...

  5. Java在ACM中的应用

    Chapter I.  Java的优缺点各种书上都有,这里只说说用Java做ACM-ICPC的特点:  (1) 最明显的好处是,学会Java,可以参加Java Challenge   :)  (2) ...

  6. java面试题32:Java网络程序设计中,下列正确的描述是()

    java面试题32:Java网络程序设计中,下列正确的描述是() A:Java网络编程API建立在Socket基础之上 B:Java网络接口只支持tcP以及其上层协议 C:Java网络接口只支持UDP ...

  7. acm c 和java如何取舍,ACM中使用JAVA语言的优缺点介绍

    Chapter I. Java的优缺点各种书上都有,这里只说说用Java做ACM-ICPC的特点: (1) 最明显的好处是,学会Java,可以参加Java Challenge   :) (2) 对于熟 ...

  8. Java从输入中读取一个数组

    最近在编程中遇到了如下问题:如何从输入中读取一个数组,一直调试出问题,后来查阅了一些资料终于解决了. 这主要是关于scanner扫描器中的nextLine()方法以及spilt()方法的应用,代码如下 ...

  9. Java提取视频中的音频

    话不多说,上代码 Scanner scanner = new Scanner(System.in);System.out.println("请输入被提取音频的视频:");Strin ...

最新文章

  1. Apache Commons组件集合
  2. docker file 打包jar_Spring Boot 的项目打包成的 JAR 包,制作成 docker 镜像并运行
  3. Kotlin实战指南十三:协程
  4. CCNA学习指南第十一章
  5. JS----JavaScript数组去重(12种方法,史上最全)
  6. Istio 2020 年 Roadmap——一切为了商用
  7. springboot 别名不起作用_springboot之mybatis别名的设置
  8. ORACLE查询表最近更改的数据
  9. linux shadow 时间,Linux Shadow-Password-HOWTO - 7. 将 Shadow Suite 放进来使用(1)
  10. idea可以使用flash框架吗_可以使用 C# 的 Web 前端框架 Blazor
  11. 基于 .Net5.0 的快速开发框架,YuebonCore1.0.3 版已发布
  12. 随想录(写给那些学校不是985、211的同学们)
  13. BZOJ4598 [Sdoi2016]模式字符串 【点分治 + hash】
  14. 利用google网管工具,快速诊断网站(一)
  15. python制作fnt字体打包工具
  16. 计算机网课课堂评价语,网络授课如何“高效”评价学生作业(附实用评语)
  17. 自然语言处理顶会 ACL2019论文接收列表
  18. Java实现FTP文件上传和下载
  19. 地理信息系统(GIS)系列——ArcGIS 开发的各种示例
  20. 基于SGIP协议的短信网关接口

热门文章

  1. ceph存储---无法删除pool
  2. 开学季,说说在新学校的感想
  3. 以太坊「生成艺术」热潮来袭,一文教你如何应对
  4. MySQL数据库与Python
  5. D2java基础(关标注常进变字)
  6. Java初级面试常见面试题
  7. python三维建模需要用到哪些知识_三维建模教学大纲
  8. 没有源代码,如何修改别人的类
  9. (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  10. 数组Array的join方法使用