import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); for(int i=1;i<=n+1;i++){ String s=sc.nextLine(); if(i==1) continue; System.out.println(s+"\n"); } while(sc.hasNext()) {//是否有输入 System.out.println(sc.next()+"\n"); } } }
问题1:
next():
1.停止录入的结束符有空格、Tab键和回车键(录入内容不含结束标志)
2.next()对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。所以next()不能得到带空格的字符串,而nextLine()是遇到回车键才结束,所以可以得到带空格的字符串。
nextline():停止录入的结束标志只有回车键。
————————————————
问题2:关于nextInt后面如果有nextLine,nextLine获取不到值的问题?
答:nextInt()会遗留下来一个回车,而nextLine()获取的是第一个回车前的数据,所以首先会得到一个""的字符。
这个问题产生的原因,程序在通过nextint方法读取数字后,会留下一个enter键,这个enter键,会被第一个执行nextLine方法接收,这就导致我们读取的数据少一行
————————————————
0.0分
5 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复