Java中nextInt和nextLine同时使用出现的问题
代码:
package com.ins1; import java.util.*;
public class test {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int n=input.nextInt();
String[] str = new String[n];
for(int i=0;i<n;i++){
str[i]=input.nextLine();
}
for (int i=0;i<str.length;i++) {
System.out.println(str[i]);
}
}
}
运行:

问题:输入n的值为5,但是只能输入4个字符串!
原因:nextInt()只读取数值,剩下"\n"还没有读取 , nextLine()会读取"\n",并结束。
输入5的时候,nextInt()只读取了5,未读取后面的"\n",这导致5后面的"\n"被nextLine()读取,所以就只能输入4个字符串了。
解决办法:在nextInt()之后额外加上input.nextLine();
解决之后:
package com.ins1; import java.util.*;
public class test {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int n=input.nextInt();
input.nextLine(); //消除n后面的 "\n"
String[] str = new String[n];
for(int i=0;i<n;i++){
str[i]=input.nextLine();
}
for (int i=0;i<str.length;i++) {
System.out.println(str[i]);
}
}
}

Java中nextInt和nextLine同时使用出现的问题的更多相关文章
- Scanner中nextInt()和nextline()读取字符串的问题
Scanner中nextInt()和nextline()读取字符串的问题 import java.util.Scanner; public class Main { public static voi ...
- java:nextInt()和nextLine()一起使用出错
今天遇到一个很奇怪的事情,日常刷题中,遇到一个很简单的题: (不想看我多逼逼只想知道为什么会出错看最后) 题目: 题目描述 description 现有有N个学生的数据记录,每个记录包括学号.姓名.三 ...
- (PASS)java中nextInt()函数
一:获取随机数的函数: package test; import java.util.Random; /** * * @ClassName: NextIntDemo * @Description: n ...
- java中Scanner类nextLine()和next()的区别和使用方法
转载:http://blog.csdn.net/zhiyuan_ma/article/details/51592730 在实现字符窗口的输入时,很多人更喜欢选择使用扫描器Scanner,它操作起来比较 ...
- Java中next() 与 nextLine() 区别
next(): 1.一定要读取到有效字符后才可以结束输入. 2.对输入有效字符之前遇到的空白,next() 方法会自动将其去掉. 3.只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符. 4. ...
- Java中next()和nextLine()
next()读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键.Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键 ...
- java中锁与@Transactional同时使用导致锁失效的问题
示例代码 @Transactional public void update(int id) { boolean lock = redisLock.lock(id); if (!lock) { thr ...
- java中next()和nextLine()的区别
首先,next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键.Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后 ...
- java中Scanner的nextLine()和next()的区别
首先,next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键.Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后 ...
随机推荐
- Nginx MogileFS 配置
配置好MogileFS, 见mogilefs的安装与配置随笔 下载nginx.1.10.3.tar.gz, nginx_mogilefs_module.1.0.4.tar.gz 编译安装 将连个tar ...
- C++中简单程序出现Segmentation fault (core dumped)段错误
段错误就是指访问的内存超出了系统所给这个程序的内存空间.一般是随意使用野指针或者数组.数组越界. ------两种简单解决方法:1.利用GDB调试,定位出错位置.(具体可查找博客详细学习)2.在可能出 ...
- 从零搭建Spring Boot脚手架(5):整合 Mybatis Plus
1. 前言 在上一文中我根据Mybatis中Mapper的生命周期手动实现了一个简单的通用Mapper功能,但是遗憾的是它缺乏实际生产的检验.因此我选择更加成熟的一个Mybatis开发增强包.它就是已 ...
- 2020-04-08:谈一下IOC底层原理
Ioc的底层原理 (1)xml配置文件 (2)dom4j解析xml (3)工厂设计模式 (4)反射
- ssh断连后,保持Linux后台程序连接
#### ssh断连后,如何保持Linux后台程序继续运行?ssh断连后,要想运行在Linux服务器中的程序继续运行,就要用到screen技术.- ##### 新建`session` ```shell ...
- 火题小战 C. 情侣?给我烧了!
火题小战 C. 情侣?给我烧了! 题目描述 有 \(n\) 对情侣来到电影院观看电影.在电影院,恰好留有 \(n\) 排座位,每排包含 \(2\) 个座位,共 \(2×n\) 个座位. 现在,每个人将 ...
- 三张图理解JavaScript原型链
- Salesforce学习笔记之Actions and Recommendations
设置Actions and Recommendations(Salesforce提供的标准元素),Salesforce上的文档说有两种方法,即Deployment和Process Builder(通过 ...
- python接口自动化 - 断言(上)
我们在做接口自动化的时候会用当unittest框架,这个框架中是有assert方法 当我们写好我们的case后 总要有个验证是否正确的东西,assert就给我们提供了非常强大的结果验证 序号 断言方法 ...
- Java mysql数据库连接Demo1
public class MysqlUtil { /** * 链接数据库 */ /** * 方法一: * 加载驱动的方法不止一种,但这种最常用 */ public static Connection ...