【问题标题】:How do I properly display my output in this instance? [duplicate]在这种情况下如何正确显示我的输出? [复制]
【发布时间】:2017-04-09 04:10:29
【问题描述】:

所以,我是 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},但我得到的是 "[我@15db9742"

【问题讨论】:

标签: java string output


【解决方案1】:

首先,您可以使用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!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-31
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 2012-06-06
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多