题目描述:
字符串的输入输出处理。
输入:
第一行是一个正整数N,最大为100。之后是多行字符串(行数大于N), 每一行字符串可能含有空格,字符数不超过1000。
输出:
先将输入中的前N行字符串(可能含有空格)原样输出,再将余下的字符串(不含有空格)以空格或回车分割依次按行输出。每行输出之间输出一个空行。
样例输入:
2
www.dotcpp.com DOTCPP
A C M
D O T CPP
样例输出:
www.dotcpp.com DOTCPP
A C M
D
O
T
CPP
解题思路:
nextLine()方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。
next()会自动消去有效字符前的空格,只返回输入的字符,不能得到带空格的字符串。
(简单点说就是:next我只要字;nextLine是小孩才做选择,我全都要)
所以在前N行我们采取nextLine()获取到字符串并直接输出,而后续的字符串我们通过使用next(),就能够获取字符串中不包含空格的字符。
全部代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine();
for(int i = 0;i < n;i++){
String str = sc.nextLine();
System.out.println(str + "\n");
}
while(sc.hasNext()){
String s = sc.next();
System.out.println(s + "\n");
}
}
}