gpt4 book ai didi

java - Array 添加 0 作为第一个元素而不是我的输入 [java]

转载 作者:行者123 更新时间:2023-11-29 07:40:50 25 4
gpt4 key购买 nike

我一直在编写这个程序来计算字符串/一行字符串中的元音。现在,我已经完成了整个程序,它确实正确地输出了所有输入的元音数量,但问题是由于某种原因,数组的第一个输入总是 0/不存在。

我会给你一个例子和代码,这有点难以解释:

Scanner sc = new Scanner(System.in);
int numberOfEntries = sc.nextInt() //this would be the number of lines of strings
String[] array = new String[numberOfEntries];
int k = 0;
while(sc.hasNext() && k < numberOfEntries){
array[k] = sc.nextLine();
k++;
}

所以这是与问题相关的代码部分,其余部分没问题。出于某种原因,当我输入以下行时:

5
abcd
efgh
ijkl
mnop
qrst

如果我输出数组,我将得到的输出是这样的:

[, abcd, efgh, ijkl, mnop]

我试过只使用

for(int i = 0; i < array.length; i++){
array[i] = sc.nextLine();
}

认为它可能会解决问题,但没有任何改变。我现在没有想法,尽管我确信我只是在某个地方犯了一些愚蠢的小错误,但我只是没有看到它。

亲切的问候,乔治

最佳答案

由于调用 nextInt() 后位于缓冲区中的 '\n',您会得到空行。输入整数后按 Enter。扫描器在调用 nextInt() 时消耗整数,但它不会触及后面的 '\n'

要解决此问题,请在读取int 后调用nextLine,并丢弃结果:

int numberOfEntries = sc.nextInt();
sc.nextLine(); // Throw away the '\n' after the int

关于java - Array 添加 0 作为第一个元素而不是我的输入 [java],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30422586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com