当前位置: 首页 > 知识库问答 >
问题:

我试图创建一个具有一定数量元素的数组,但当使用变量时,它不起作用[duplicate]

方轩昂
2023-03-14

这里我在可变长度中放了一个4值。我应该得到一个有4个元素的数组,但我只能输入3个元素。

java prettyprint-override">public static void main(String[] args) {
    int length;
    Scanner input = new Scanner(System.in);
    System.out.print("Length: ");
    length = input.nextInt();
    String[] my_friend_names = new String[length];
    for (int i = 0; i < length; i++) {
        my_friend_names[i] = input.nextLine();
    }
    for (int i = 0; i < length; i++) {
        System.out.println("Name: " + my_friend_names[i]);
    }
}

输出:

    null
public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    String[] my_friend_names = new String[4];
    for (int i = 0; i < 4; i++) {
        my_friend_names[i] = input.nextLine();
    }
    for (int i = 0; i < 4; i++) {
        System.out.println("Name: " + my_friend_names[i]);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 名称:1
  • 名称:2
  • 名称:3
  • 名称:4

你知道为什么吗?

共有1个答案

陈兴朝
2023-03-14

这是因为扫描器API的不正确使用。在第一个示例中,当您使用input.nextInt();时,它只读取该行的整数部分,扫描程序仍然不使用新的行字符。稍后,当您调用Scanner.nextLine()时,它返回4之后的字符(这是您的输入)和新的行(这是一个空字符串)。

这个问题以前已经回答过了

扫描器在使用next()或nextFoo()后跳过nextLine()?

不能同时使用Scanner.NextInt()和Scanner.NextLine()

 类似资料:
  • 问题内容: 我想创建一个包含ArrayList 元素的数组。 我试过了 但这似乎不起作用。 问题答案: 您不能创建通用类型的数组。 相反,您可以创建一个。

  • 问题内容: 我是php的新手,这可能是一个愚蠢的错误……但是我不知道发生了什么。我正在尝试使用php在数据库中创建一个表。我想用用户名命名该表。我正在使用变量。这是我的代码 因此,这将创建一个名为的表。变量不会保留。但是- 当我-变量结转。我对此很陌生- 因此,感谢您的帮助。 问题答案: 在您的SQL查询之后添加它-(它确实可以帮助并加快错误纠正时间) 回声 这在您的实例: 发生MySQL错误。错

  • 我有一个按钮,我给了角半径属性。在xml代码中,应用程序似乎是弯曲的,但当我运行应用程序时,按钮是矩形的。 我也用材质按钮代替了这个按钮,但还是发生了同样的事情。它在XML设计中似乎是弯曲的,但在应用程序中却不是。

  • 创建一组元素,根据原始数组中的位置进行分组。 使用 Math.max.apply() 获取参数中最长的数组。 创建一个长度为返回值的数组,并使用 Array.from() 和 map-function 来创建一个分组元素数组。 如果参数数组的长度不同,则在未找到值的情况下使用 undefined 。 const zip = (...arrays) => { const maxLength =

  • 我试图写一个程序,本质上评估一个5卡扑克手,是用户生成的。程序的一部分是用户可以选择一个变量来随机改变。问题在于为我的一个实例变量设置值,现在,我的setCards、getCards和changeOne方法是: 在另一个类中,我使用: 我不知道为什么,但是每当我尝试使用changeOne方法时,总是给我一个错误:线程“main”java.lang.StringIndexOutOfBoundsExc