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.0分

5 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

计算机魔术师 2年前 回复TA
這個結果不對吧,一個一個輸入的話,會立馬輸出,一起輸入則  後面的循環無效,但很奇怪爲什麽編譯正確