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语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:1482 |
1128题解(返回值为数组的情况)浏览:571 |
演讲大赛评分 (C语言代码)浏览:1697 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:654 |
企业奖金发放 (C语言代码)浏览:2462 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:593 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:615 |
C语言程序设计教程(第三版)课后习题8.1 (C++代码)浏览:612 |
简单的a+b (C语言代码)浏览:676 |
A+B for Input-Output Practice (C++代码)浏览:491 |