当前位置:   article > 正文

Java循环用nextLine()输入少一行_next-intl 换行

next-intl 换行

今天刷C语言网题号1094题的时候,遇到个奇怪的事情。题目要求是先输入一个n,然后接下来要输入n行字符串。
按理来说很简单,就nextInt()获取n后,用循环输入nextLine()就可以了,但奇怪的是for循环如果条件写成(int i=0;i<n;++i)后,会少一行。并且最后一个还没输入默认就是null了。
网上查了查,知道了是因为前面用过了类似nextInt()这样的函数。两种函数消息处理机制不同,当nextInt()读取到回车符或者换行的时候,就会停止且拿走前面的数据,但同时也会留下来一个回车符或者换行。而nextLine()读取到换行就会结束,所以相当于还没开始就结束了。。。
解决方案应该有很多,都用nextLine()然后把第一个转换成int感觉比较方便;或者也可以用完nextInt()之后再单独写一个nextLine()。

然后这道题还有一个地方就是,最后要按照空格来分字符串,听起来也很简单,用split就行,不过看了题解大佬的答案后,发现用split("\s+")更对,split(" ")不能判断多个空格连续的情况。
让我想起来之前写c#遇到过这种情况,当时用的是c#的split的StringSplitOptions.RemoveEmptyEntries重载函数。

害~不得不说路漫漫其修远兮啊

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/913646
推荐阅读
相关标签
  

闽ICP备14008679号