在处理ArrayLists时,我可以用什么替代charAt?

时间:2014-10-14 04:52:40

标签: java arraylist charat

这是我第一次使用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);

这是你在说什么吗?

2 个答案:

答案 0 :(得分:2)

  int [] vowelInt = new int [5];

for (int i = 0; i<vowels.size(); i++) {
    String word =(String) vowels.get(i);//try like this
char letter=word.charAt(0);   //return method to a dynamic array.    
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]++;
    }

答案 1 :(得分:1)

您可以使用List检索get(i)的第i个元素。

在这种情况下,您需要进一步更新。如果vowels["ham", "cheese", "bread"],则get(0)将返回String“ham”,vowels的第0个元素。如果你想查看“ham”中的每个字母,那么你需要做更多的事情,比如在第一个和charAt内使用另一个循环来查看字符串中的每个字母。