2

これは ArrayLists を使用した最初の割り当てであり、charAt を使用できないことを今学習しています。この課題の進め方がわかりません。このプログラムの目的は、各母音の平均を示す配列を出力することです。たとえば、[チーズ、チーズ、チーズ] の配列は [0, 3, 0, 0, 0] になります。私はプログラムをどのように終わらせるかには関心がありません。charAtの問題だけです。通常、これを ArrayLists に置き換える別の方法はありますか?そうでない場合は、誰かが解決策を教えてくれますか? 私が話しているコードの一部を投稿するだけです。誰かが私にもっと投稿してほしい場合は、私に知らせてください.

    import java.util.ArrayList;
    import java.util.Scanner;
    import java.util.*;

    public class ArrayListVowels {
    public static void main (String [] args) {

    ArrayList<String> vowels = new ArrayList<String>();

    vowels.add("chocolate");
    vowels.add("pudding");
    vowels.add("elephants");


    System.out.println(vowels);
    System.out.println("Avg number of vowel characters: " + averageVowels(vowels));


}


public static int[] averageVowels(ArrayList<String> vowels) {

    int [] vowelInt = new int [5];

    for (int i = 0; i<vowels.size(); i++) {
        char letter = vowels.charAt(i);
        if(letter=='a') {
            vowelInt[0]++;
        } else if (letter == 'e') {
            vowelInt[1]++;
        } else if (letter == 'i') {
            vowelInt[2]++;
        } else if (letter == 'o') {
            vowelInt[3]++;
        } else if (letter == 'u') {
            vowelInt[4]++;
        }

    }

    return vowelInt;
}

vowels.get(0) がチョコレートを取得することは理解していますが、「o」を取得したい場合は、ループ内でループを実行する必要があります。以前はそのトラックについて考えていましたが、文字列をまったく定義していないのに、どうすればそれができるのでしょうか? それらを「追加」しているだけです。String x = "chocolate" のようにすれば、charAt のようなことができるので、違うと思います。これが私が混乱している理由だと思います。これが私がループに取り組んでいた方法ですが、正しい軌道に乗っているかどうかは本当にわかりません.

    for(int i = 0; i<vowels.size(); i++) {
        for(int j = 0; j<[0].length; j++) { //I totally know that's wrong
        char letter = charAt(i);

このようなことを話していたのですか?

4

2 に答える 2

1

で a の i 番目の要素を取得できListますget(i)

この場合、さらに更新する必要があります。の場合、 の 0 番目の要素である「ハム」vowelsが返され["ham", "cheese", "bread"]ます。「ham」の各文字を調べたい場合は、最初のループ内で別のループを使用して文字列の各文字を調べるなど、さらに何かを行う必要があります。get(0)StringvowelscharAt

于 2014-10-14T04:56:06.050 に答える