有人可以解释为什么在我的字符串数组的第一个单元格中存储了空白空间吗?我试图将通过控制台输入的每一行存储到String数组中。

import java.util.Scanner;

public class ClassNameHere {
   public static void main(String[] args) {
      Scanner in = new Scanner(System.in);
      int numberOfLines = in.nextInt();

      String[] lines = new String[numberOfLines];

      for( int i = 0; i < numberOfLines; i++ ){
          lines[i] = in.nextLine();
      }

      for( int i = 0; i < numberOfLines; i++ ){
          System.out.println(lines[i]);
      }
   }
}

最佳答案

in.nextInt()仅读取int值,之后不读取换行符。这样您的in.nextLine()将读取换行符,因此第一个索引为空。要消除此问题,请在读取in.nextLine()之后添加一个虚拟int

int numberOfLines = in.nextInt();
in.nextLine();


另一种方法是使用nextLine()而不是nextInt()读取并将输入解析为int

int numberOfLines = Integer.parseInt(in.nextLine());

08-27 14:10