数组开头的额外元素

时间:2015-03-24 06:08:43

标签: java arrays for-loop

我想问一下我的代码有什么问题。我试图创建一个程序来检查给定字符串中的元音数量并将其输出到数组中。问题是在数组的开头总是有一个额外的元素。为什么会这样。在数组的开头总是有一个0。

输出18个字符串的示例输出 [0,8,13,5,8,12,7,5,3,9,8,8,16,11,15,10,9,9,9] 我必须指定字符串数为19,因为它在前面添加了一个额外的元素

import java.util.Arrays;
import java.util.Scanner;

public class VowelCount {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int[] nums = putArr(in);

        System.out.println(Arrays.toString(nums));
    }




    public static int[] putArr(Scanner in){
        System.out.println("How many String");
        int a = in.nextInt();
        int[] make = new int[a];

        for (int i = 0; i < a; i++) {
            make[i] = vowelCount(in);
        }

        return make;
    }


    public static int vowelCount(Scanner in){
        int count = 0;
        String input = in.nextLine();
        for (int i = 0; i < input.length(); i++) {
            if (input.charAt(i) == 'a' || input.charAt(i) == 'e' || input.charAt(i)== 'i' || input.charAt(i) == 'u'
                    || input.charAt(i)== 'o' || input.charAt(i) == 'y'){
                count++;
            }
        }
        return count;
    }
}

1 个答案:

答案 0 :(得分:2)

切勿在{{1​​}}之后使用nextLine()。点击 Enter 键后,它将调用为空字符串。改变

nextInt()

int a = in.nextInt();