使用Scanner类获取输入,连续获取int类型和String类型数据时候,发生错误。

Scanner sc = new Scanner(System.in);
System.out.println("输入int类型");
int a = sc.nextInt();
System.out.println("输入String类型");
String s = sc.nextLine(); System.out.println(a);
System.out.println(s);
System.out.println("运行完毕");

运行结果,输入5后回车,直接运行完毕,请求输入String被跳过。

原因,输入5后的回车,被系统误判断是请求输入s的String。于是运行完毕。

解决方案:

1)使用一个新的Scanner对象获取String.

Scanner sc = new Scanner(System.in);
System.out.println("输入int类型");
int a = sc.nextInt(); Scanner sc2 = new Scanner(System.in);
System.out.println("输入String类型");
String s = sc2.nextLine(); System.out.println(a);
System.out.println(s);
System.out.println("运行完毕");

2)在nextInt后面加入一个nextLine(),不进行赋值。

Scanner sc = new Scanner(System.in);
System.out.println("输入int类型");
int a = sc.nextInt();
sc.nextLine(); //不进行赋值,接受回车
System.out.println("输入String类型");
String s = sc.nextLine(); System.out.println(a);
System.out.println(s);
System.out.println("运行完毕");

撰写时间:2017-08-20 14:43:10

修改时间:2017-08-20 14:51:12

end;

疑难杂症:Java中Scanner连续获取int和String型发生错误.的更多相关文章

  1. java中Object转换成int或String类型方法

    转载: http://www.cnblogs.com/1020182600HENG/p/6137206.html Object obj = getObject(); if(obj instanceof ...

  2. java中时间的获取(二)

    java中时间的获取2 /** * 获取数据库操作记录时间 */ public static String getOpreateDbTime() { Calendar c = Calendar.get ...

  3. 【转】java中byte数组与int类型的转换(两种方式)----不错

    原文网址:http://blog.csdn.net/piaojun_pj/article/details/5903009 java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法, ...

  4. Java进阶(二十三)java中long类型转换为int类型

    java中long类型转换为int类型 由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况: 主要以下几种转换方法,供参 ...

  5. java中如何理解:其他类型 + string 与 自增类型转换和赋值类型转换

    java中如何理解:其他类型 + string 与 自增类型转换和赋值类型转换 一.字符串与其他类型连接 public class DemoString{ public static void mai ...

  6. PDO 查询mysql返回字段int变为String型解决方法

    PDO 查询mysql返回字段int变为String型解决方法使用PDO查询mysql数据库时,执行prepare,execute后,返回的字段数据全都变为字符型. 例如id在数据库中是Int的,查询 ...

  7. Java中Scanner用法总结

    最近在做OJ类问题的时候,经常由于Scanner的使用造成一些细节问题导致程序不通过(最惨的就是网易笔试,由于sc死循环了也没发现,导致AC代码也不能通过...),因此对Scanner进行了一些总结整 ...

  8. java中scanner类的用法

    在Eclipse中编写程序时,如果我们的变量是需要手动输入的时候,我们就可以用到scanner类了. Scanner类,这是一个用于扫描输入文本的新的实用程序.由于任何数据都必须通过同一模式的捕获组检 ...

  9. Java中Scanner类和BufferReader类之间的区别

    java.util.Scanner类是一个简单的文本扫描类,它可以解析基本数据类型和字符串.它本质上是使用正则表达式去读取不同的数据类型. Java.io.BufferedReader类为了能够高效的 ...

随机推荐

  1. centos查看自启动服务

    1,查看自启动服务? 2,查看某服务的开机启动状态? 3,启动(关闭,重启,查看)某个服务? 4,设置开机启动或者关闭某个服务? 1,查看自启动服务? systemctl list-unit-file ...

  2. iOS内置麦克风选择方法

    模式中的 voicechat用于VoIP是由系统进行默认选择的最适合的麦克风 模式中的AVAudioSessionModeVideoRecording默认选择上麦克风,离摄像头最近的那个,主要用于VO ...

  3. 随机获得id的方法

    public String generateUUID() { String uuid = UUID.randomUUID().toString(); uuid = uuid.replace(" ...

  4. Dockerfile的alpine时区设置

    FROM *** RUN apk add -U tzdataRUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

  5. 查找linux下进程占用CPU过高的原因,以php-fpm为例

    很多时候,线上服务器的进程在某时间段内长时间占用CPU过高,为了优化,我们需要找出原因. 1.找出占用CPU最高的10个进程 ps aux | sort -k3nr | head -n 10 或查看占 ...

  6. dubbo知识体系

    Dubbo负载均衡 Random随机/ RoundRobin轮询/ LeastActive最少Dubbo缓存Dubbo集群容错 Dubbo回调 服务分组: group Dubbo异步调用 <du ...

  7. 1,charles的功能能介绍和安装破解

    1,charles的功能 1,截取http和https网络包 2,支持重发网络请求,方便后端调试 3,支持网络请求的截获和动态修改 4,支持模拟弱化的网络 2,安装和破解 1,进入官网下载地址:htt ...

  8. python学习心得--编码格式篇

    计算机容量单位: 1位 = 1bit: 8bit = 1byte = 1字节 : 1024bytes = 1kbytes =1KB: 1024KB = 1Million Bytes = 1MB = 1 ...

  9. [翻译]理解分析Linux里的101个ELF文件

    原文:https://linux-audit.com/elf-binaries-on-linux-understanding-and-analysis/

  10. RT-thread-------------------信号量

    信号量:用于解决线程间同步问题的内核对象,线程可以获取或释放它,从而达到同步或互斥的目的.(互斥量只能由持有线程释放,而信号量则可以由任何线程释放) 在rtt中,信号量分为计数型信号量和二值信号量(作 ...