疑难杂症:Java中Scanner连续获取int和String型发生错误.
使用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型发生错误.的更多相关文章
- java中Object转换成int或String类型方法
转载: http://www.cnblogs.com/1020182600HENG/p/6137206.html Object obj = getObject(); if(obj instanceof ...
- java中时间的获取(二)
java中时间的获取2 /** * 获取数据库操作记录时间 */ public static String getOpreateDbTime() { Calendar c = Calendar.get ...
- 【转】java中byte数组与int类型的转换(两种方式)----不错
原文网址:http://blog.csdn.net/piaojun_pj/article/details/5903009 java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法, ...
- Java进阶(二十三)java中long类型转换为int类型
java中long类型转换为int类型 由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况: 主要以下几种转换方法,供参 ...
- java中如何理解:其他类型 + string 与 自增类型转换和赋值类型转换
java中如何理解:其他类型 + string 与 自增类型转换和赋值类型转换 一.字符串与其他类型连接 public class DemoString{ public static void mai ...
- PDO 查询mysql返回字段int变为String型解决方法
PDO 查询mysql返回字段int变为String型解决方法使用PDO查询mysql数据库时,执行prepare,execute后,返回的字段数据全都变为字符型. 例如id在数据库中是Int的,查询 ...
- Java中Scanner用法总结
最近在做OJ类问题的时候,经常由于Scanner的使用造成一些细节问题导致程序不通过(最惨的就是网易笔试,由于sc死循环了也没发现,导致AC代码也不能通过...),因此对Scanner进行了一些总结整 ...
- java中scanner类的用法
在Eclipse中编写程序时,如果我们的变量是需要手动输入的时候,我们就可以用到scanner类了. Scanner类,这是一个用于扫描输入文本的新的实用程序.由于任何数据都必须通过同一模式的捕获组检 ...
- Java中Scanner类和BufferReader类之间的区别
java.util.Scanner类是一个简单的文本扫描类,它可以解析基本数据类型和字符串.它本质上是使用正则表达式去读取不同的数据类型. Java.io.BufferedReader类为了能够高效的 ...
随机推荐
- centos 7.4安装python3.7.4
转自https://www.cnblogs.com/zhanglong8681/p/8421512.html 1.下载安装包 Linux下默认系统自带python2.7的版本,这个版本被系统很多程序所 ...
- websocket初识
一.官网 官网地址:http://www.websocket.org/ 二.websocket初识demo <input id="sendTxt" type="te ...
- Vue仿string.format
Vue.prototype.$stringFormat = function stringFormat (formatted, args) { for (let i = 0; i < args. ...
- mac环境下mongodb的安装和使用
mac环境下mongodb的安装和使用 简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据 ...
- linux 查看系统资源命令
vmstat vmstat 1 3 #每隔一秒刷新3次 lsof lsof | more #process->file lsof | /sbin/init #file->process l ...
- 修改Tomcat控制台标题
1.在tomcat的bin目录下新建文件setenv.bat 2.重启tomcat即可
- centos 批量杀死进程
ps aux | grep 进程名| grep -v grep | awk '{print $2}' | xargs kill -9
- hbase_存储模型
Hbase 是按列存储,所以每个列族存储在一个HDFS文件上. Hbase表中的行是按照rowkey字典序进行排列的,并且表格在行的方向上被分割为多个region(按照行进行分割的) region 是 ...
- 根据select出来的数据进行update
update t_tbl_desc set num=b.num from t_tbl_desc a, (select distinct(name) as name,count(name) num fr ...
- 【java】:多线程面试题
经常面试的时候,让写各种乱七八糟的多线程面试题,收集了很多,有些还是挺好玩的. 1.编写程序实现,子线程循环10次,接着主线程循环20次,接着再子线程循环10次,主线程循环20次,如此反复,循环50次 ...