java中使用nextLine(); 没有输入就自动跳过的问题?

我昨天在做题(最长上升子序列)的过程中遇到一个问题,第一个数N表示后面有多少组测试数据,但是当我输入N之后,for循环里的nextLine();并没有让我输入,就跳过并且输出了

【问题分析】

in.nextLine()不能放在in.nextInt()后面,否则in.nextLine()会读入“\n”,但“\n”并不会称为返回的字符

举个例子:

import java.util.*;
public class static void main(String[] args){
    Scanner in = new Scanner(System.in);
    int N = in.nextInt();
    for(int i = 0;i < N;i++){
    String str = in.nextLine(); 
    }
}

假如输入N为1,摁下回车,程序并不会让你继续输入str,而是直接结束了

【解决方案】

最好的解决办法,在nextInt()和nextLine()之间放一个in.nextLine()来接收这个“\n”

import java.util.*;
public class static void main(String[] args){
    Scanner in = new Scanner(System.in);
    int N = in.nextInt();
    in.nextLine();
    for(int i = 0;i < N;i++){
    String str = in.nextLine(); 
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏iOS技术杂谈

iOS runtime探究(四): 从runtiem开始实践Category添加属性与黑魔法method swizzling你要知道的runtime都在这里

你要知道的runtime都在这里 转载请注明出处 https://cloud.tencent.com/developer/user/1605429 本文主要讲解...

3306
来自专栏CDA数据分析师

【年末收藏】17个新手常见Python运行时错误

对初学者来说,想要弄懂Python的某些错误信息还是有困难的,下面罗列了一些常见的运行时错误: 1)忘记在 if , elif , else , for , w...

1777
来自专栏Crossin的编程教室

17个新手常见 Python 运行时错误

当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂。这里列出了常见的的一些让你程序 crash 的运行时错误。 1)忘记在 if ,...

3766
来自专栏机器学习从入门到成神

Java之next()与nextline区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

1811
来自专栏加米谷大数据

技术分享 | Python之新手运行时常见的17个错误

当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂。这里列出了常见的的一些让你程序 crash 的运行时错误。 1)忘记在 if ,...

3539
来自专栏偏前端工程师的驿站

JS魔法堂:再识instanceof

一、Breif                                  大家都知道instanceof一般就是用来检查A对象是否为B类或子类的实例。那...

2229
来自专栏老九学堂

每日一练(变量)

习题 1.打印一句你喜欢的话到屏幕上 2.定义一个整形变量,赋值为10,打印这个整形变量的值 3.输入一个整形变量a,字符变量b,双精度变量c,把值显示在屏幕上...

3548
来自专栏编程

17个新手常见Python运行时错误

当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂。这里列出了常见的的一些让你程序 crash 的运行时错误。 1)忘记在if,el...

2220
来自专栏一“技”之长

iOS中正则表达式的使用 原

正则表达式在字符串查找,替换,检测中的应用非常广泛,正则表达式是什么,有怎样的语法,我的另一篇博客中有详细的介绍:http://my.oschina.net/u...

784
来自专栏用户画像

Java变量驼峰法转下滑线

711

扫码关注云+社区