解题思路:

前N行用scanner.nextLine()读取,后面的字符串用scanner.next()分别读取。

注意事项:
输出时str[k]要从k= 1开始,否则会多输出一行空格,报格式错误,因为输入的第一行n不用输出且没有读取到str[]中。
参考代码:

import java.util.Scanner;
public class Main {
 public static void main(String[] args) {
  Scanner scanner = new Scanner(System.in);
  int n = scanner.nextInt();
  int i = 0;
  int k = 1;
  String str[] = new String[1000];
  while(scanner.hasNext()){
   for(; i < n+1; i++){
    str[i] = scanner.nextLine();
   }
   str[i] = scanner.next();
   i++;
   while(k < i){
    System.out.println(str[k]+"\n");
    k++;
   }   
  }  
 }
}


点赞(2)
 

0.0分

17 人评分

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

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

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

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

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

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

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

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

评论列表 共有 2 条评论

M.Stealth 4年前 回复TA
当用了sanner.nextInt()读入数据后,再用sanner.nextLine()读入数据时,第一个sanner.nextLine()会读不到数据,它只读取到一个回车(什么都没有),第二个sanner.nextLine()才能读取到数据。
陈正磊 4年前 回复TA
scanner.next() 读取没明白