Scanner扫描器获取int、String-源代码解析
来源:互联网 发布:js判断option是否选中 编辑:程序博客网 时间:2024/05/29 09:38
在用Scanner扫描器输入值的时候,如果先接受一个int再接受一个String会出现无法输入String就结束了,因为会把回车换行符给String。当初也是很困惑,花了不少时间去搞清楚这个问题。后来看到了这篇博文。这里做一下源代码方面的解析。程序代码用的是这篇博文里面的代码。
测试代码
public class ScannerTest { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 创建对象 Scanner sc = new Scanner(System.in); // 先获取一个int值,在获取一个字符串 System.out.println("先获取一个int值,在获取一个字符串"); int a4 = sc.nextInt(); String s4 = sc.nextLine(); System.out.println("a4:" + a4 + ",s4:" + s4); System.out.println("-------------------"); }}
debug跟进代码,可以看到当代码运行完int a4 = sc.nextInt();
sc.buf=”1\n”,其中\n是换行符。
执行代码String s4 = sc.nextLine()
,可以看到nextLine()方法的结束符是\n.
所以执行String s4 = sc.nextLine()
的时候不会等待控制台继续输入,会直接执行后面的程序。
针对这个问题的解决方案:
添加代码 s4 = sc.nextLine()
1 0
- Scanner扫描器获取int、String-源代码解析
- Scanner扫描器中如果先获取一个int再获取一个String会出现什么错误以及next()和nextLine()的区别
- Scanner-扫描器
- Scanner简单文本扫描器
- Scanner扫描器的源码
- 扫描器Scanner的Api
- HBase Scanner扫描器
- JAVA-Scanner扫描器
- 扫描器对象Scanner
- JAVA入门之Scanner扫描器
- HBase Scanner Caching 扫描器缓存
- Scanner获取String类型的数据
- Scanner,String
- c#端口扫描器源代码
- s扫描器源代码
- S扫描器源代码
- c#端口扫描器源代码
- 黑马程序员——Scanner 扫描器
- Sync Gulp Tasks
- 剑指Offer面试题7(Java版):用两个栈实现队列与用两个队列实现栈
- FREEMARKER——模板开发_数值,类型
- TKmybatis的框架介绍和原理分析及Mybatis新特性演示
- Linux网络编程必看书籍推荐
- Scanner扫描器获取int、String-源代码解析
- iOS剪切板 UIPasteboard
- 2410 \2440时钟体系架构
- 文章标题
- 笔记——service
- javase基础
- ccf 画图
- sublime text 3配置c/c++编译环境
- javascript函数节流