java - 为什么数组的第一个单元格中存储了一个空空间?

标签 java arrays 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() 后,第一次调用 in.nextLine() 将返回同一行的其余部分,因此它是空的。

您应该在循环之前添加对 in.nextLine() 的调用以使用该空行。

      int numberOfLines = in.nextInt();

      String[] lines = new String[numberOfLines];      

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

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

关于java - 为什么数组的第一个单元格中存储了一个空空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27125845/

相关文章:

javascript - 使用纯 Javascript 或 Typescript 删除数组中的重复项

java - 在 Enfinity 中从 Pipeline 处理 AJAX 请求

java - 无法获取Java中特定索引中的对象

java - 动画未显示

ruby - 将数组转换为哈希键

c - 在 C : Or how to dynamically allocate an array? 中将文件读入 char 数组

c - 如何读取文件中的所有行并将它们存储在字符串中

java - 无法从 block 模板引擎检索对象属性

java - 添加Java系统模块在Eclipse中编译

Java - 将谓词转换为字符串