这是因为您使用的是

Scanner#next方法.如果你查看该方法的文档,它将返回下一个标记读取.

因此,当您使用next方法读取用户输入时,它不会在最后读取换行符.然后由while循环中的nextLine()读取.因此,您的firstName包含一个不知道的换行符.

所以,你应该在你的while而不是next()中使用nextLine().

与nextInt方法类似.它也不会读取换行符.因此,您可以使用readLine读取并使用Integer.parseInt将其转换为int.如果输入值无法转换为int,则可能抛出NumberFormatException.所以你需要相应地处理它.

您可以尝试以下代码: –

Scanner sc = new Scanner(System.in);

System.out.println("Continue?[Y/N]");

while (sc.hasNext() && (sc.nextLine().equalsIgnoreCase("y"))) {//change here

System.out.println("Enter first name");

String name = sc.nextLine();

System.out.println("Enter surname");

String surname = sc.nextLine();

System.out.println("Enter number");

int number = 0;

try {

number = Integer.parseInt(sc.nextLine());

} catch (IllegalArgumentException e) {

e.printStackTrace();

}

System.out.println("Continue?[Y/N]");

}

但是,请注意一件事,如果输入一个无法传递给Integer.parseInt的值,您将获得一个异常,并且将跳过该输入.对于这种情况,您需要使用while循环来处理它.

或者,如果您不想进行异常处理: –

你可以在sc.nextInt()之后添加一个空的sc.nextLine(),它将使用剩下的换行符,如下所示: –

// Left over part of your while loop

String surname = sc.nextLine();

System.out.println("Enter number");

int number = sc.nextInt();

sc.nextLine(); // To consume the left over newline;

System.out.println("Continue?[Y/N]");

java如何获取scanner_java – 使用Scanner获取用户输入相关推荐

  1. 编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个函数分别实现这两个字符串的拼接、整数相加和浮点数相加。要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃。

    编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个函数分别实现这两个字符串的拼接.整数相加和浮点数相加.要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃. pack ...

  2. java中if判断季节_Java判断用户输入月份的季节

    Java判断用户输入月份的季节 发布于 2020-12-7| 复制链接 摘记: 要求: *  根据用户输入的月份来判断该月季节实现代码: ```java import java.util.Scanne ...

  3. java 字符串 转 文件路径_连接用户输入字符串转换为完整的文件路径(Java)

    我写了一个简短的脚本来创建一个文件到我的桌面,文件出现了 . 我只是在main中完成了所有操作,如下所示: import java.io.*; import java.util.Scanner; pu ...

  4. php 通过对话框获取参数,利用对话框提示用户输入参数的查询过程称为()

    按负担能力收费 使用噪声测量仪器前后应作哪些校准和检查? 电力市场分析收集的数据资源主要有哪些? 下列关于期权投资策略的表述中,不正确的是( ). 酒精-水型防冻液的冰点限制在()左右. 哪些交易或者 ...

  5. 读入两个字符串java_编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个strAdd函数...

    分别实现这两个字符串的拼接.整数相加和浮点数相加.要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃.publicclassStrinput{publicstaticvoidmain ...

  6. Java最大值最小值问题(用户输入)

    前言:做编程题遇到的问题,对思路有较好启示 目录 输入的值较少 输入的值较多 方法一(循环) 方法二(Arrays.sort排序)(值较少时也可以用) 输入的值较少         当输入的值较少时, ...

  7. 通过java程序判断用户输入的是字符串还是整数

    在Java程序中可以使用instanceof关键字判断用户输入的是字符串还是整数.可以将用户输入的值存储在一个Object类型的变量中,然后使用instanceof关键字检查该变量是否是String类 ...

  8. 如何获取Java用户输入?

    本文翻译自:How can I get the user input in Java? I attempted to create a calculator, but I can not get it ...

  9. scanner 获取控制台信息_关于java.util.scanner:如何使用Java中的Scanner类从控制台读取输入?...

    如何使用Scanner类从控制台读取输入? 像这样: System.out.println("Enter your username:"); Scanner = input(); ...

  10. java获取系统信息:java的信息、操作系统的信息、用户的信息、虚拟机的信息、系统设置的信息。

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java获取系统信息:java的信息.操作系统的信息.用户的信息.虚拟机的信息.系统设置的信息. package com.lp.app.windo ...

最新文章

  1. ORA-04031错误导致宕机案例分析
  2. 已知数据信息为 16位,最少应附加( )位校验位,以实现海明码纠错。
  3. 关于微信浏览器H5 React,Vue工程化项目input无法自动聚焦疑难杂症排查
  4. 信息化基础建设 工作流开发
  5. mysql8基本操作
  6. Android笔记 apk的反编译 | 更新于2017/7/25
  7. 判断objcet是否是map类型_Java集合类和Map判定一个对象是否已经存在
  8. Python 如何从字符串中提取 URL 链接
  9. CC2530休眠-PM2-PM3
  10. 多伦多计算机科学排名,2017加拿大大学专业排名:计算机科学类项目
  11. DirectX12(D3D12)基础教程(八)——多显卡渲染基础、共享纹理、多GPU同步
  12. 三、pandas_datareader金融数据
  13. 如何写好产品需求文档
  14. Oracle 的next_day函数详解
  15. echarts柱状图顶部数据显示气泡
  16. java ajax教程_AJAX Java
  17. 南加州大学计算机专业研究生录取,南加州大学研究生录取案例分享
  18. android防丢器设计,☆基于51单片机的无线防丢器设计|可以防止儿童走丢的神奇...
  19. 钉钉消息会话管理,给钉钉传一个url的连接会话传递多个参数的问题
  20. python高手之路python处理excel文件

热门文章

  1. socket编程之TCP/UDP
  2. 关于交流电路的谐振等问题
  3. spring AOP(二) 相关类或接口
  4. Android简单的发短信示例
  5. Python 监控 DB 服务器信息(cpu, 磁盘,进程,alert log) 脚本
  6. 查看vs支持的c#语言版本/查看.NetCore版本/更改c#语言版本
  7. Layui 表格渲染
  8. 《WordPress插件开发手册》目录
  9. linux下安装apache mysql,linux下常见的apache+mysql+php的安装
  10. 泰山JDK8升级u302,找到了更好的整合mips办法