如何在此实例中正确显示输出?

时间:2017-04-09 04:10:30

标签: java string output

所以,我是Java的新手,正在做一个磨练我的技能的练习。我试图创建一个接受字符串的方法,并向用户返回字符串中有多少元音。这就是我到目前为止所拥有的

    static int[] vowelCount(String english)
    {
        int a = 0;
        int e = 0;
        int i = 0;
        int o = 0;
        int u = 0;

        int[] counter = {a, e, i, o, u};

        for (int itt = 0; itt < english.length(); itt++)
        {
            if( english.charAt(itt) == 'a')a++;
            if( english.charAt(itt) == 'e')e++;
            if( english.charAt(itt) == 'i')i++;
            if( english.charAt(itt) == 'o')o++;
            if( english.charAt(itt) == 'u')u++;

        }

        return counter;

    }

    public static void main(String[] args)
    {
        System.out.print(vowelCount("Java rocks!"));

    }

在这个例子中,我希望我的输出为{2,0,0,1,0},但我得到的是 &#34; [I @ 15db9742&#34;

1 个答案:

答案 0 :(得分:0)

首先,您可以使用Arrays.toString()打印出数组counter的直观表示。

其次,将元音的位置存储在数组中会更有意义,因为目前您根本没有修改数组,counter看起来像[0, 0, 0, 0, 0]

import java.util.Arrays;

class Main {
  public static void main(String[] args) {
    System.out.print(Arrays.toString(vowelCount("Java rocks!")));
  }

  public static int[] vowelCount(String english) {
    //representing the position in the counter array
    int a = 0; 
    int e = 1; 
    int i = 2;
    int o = 3;
    int u = 4;

    int[] counter = {0, 0, 0, 0, 0}; 

    for (int itt = 0; itt < english.length(); itt++) {
      if( english.charAt(itt) == 'a') counter[a]++;
      if( english.charAt(itt) == 'e') counter[e]++;
      if( english.charAt(itt) == 'i') counter[i]++;
      if( english.charAt(itt) == 'o') counter[o]++;
      if( english.charAt(itt) == 'u') counter[u]++;
    }
    return counter;
  }
}

<强>输出:

[2, 0, 0, 1, 0] 

试试here!