2017-04-09 112 views
1

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

+0

由於打印陣列它自我給你在Java中的哈希碼。 [看到這個問題](http://stackoverflow.com/questions/4479683/java-arrays-printing-out-weird-numbers-and-text)。 –

回答

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!