从cf中小小重温Java键盘读入

发布时间 2023-12-30 01:02:13作者: sixsix666

在前面的cf比赛中发现引用nextint和nextline会出现问题,下面重新理一下next,nextint,nextline

next()、nextInt()读取数据后指针还在当前行,如果紧跟nextLine(),读取数据会出错,因为nextInt()以回车作为结尾标志且它会把回车符留在内存中,当使用nextInt()录入一个整数按下回车后,整数被nextInt()读取,回车符会留在内存,如果nextInt()后面有nextLine()时,这个回车符便会直接被nextLine()读取,解决方法是在引用nextline前加一句sc.nextline();

next:

1、当录入的字段开头有空格时,next会自动去除空格,只保留有效字符(非空格);
2、当读取到有效字符后,如果碰到空格,那么空格与空格后的内容不会被读取;
3、next的结束录入标志是回车符(前期是他已经读取到有效字符(非空格),如果输入内容一直是空格,那么即便按下回车符,也不会结束录入!!)

nextline:

nextLine(): 读取一行,内容任意(字母、数字、特殊符号、空格都可以),回车表示结束录入,回车前的内容都会读取。

nextint:

只读取int类型的整数,回车表示结束录入。

大体就是这样,其实比赛的数据input要考虑很多比如样例中的input是否有空格等等