计算一个字母出现在2d数组JAVA中的次数

时间:2016-11-29 18:27:07

标签: java arrays count

所以我基本上有一个看起来像这样的数组:

BG6001;1193;M;63;B+
BG6001;1124;M;41;C
BG6001;1121;F;FA;FA
BG6001;1143;M;26;FA
BG6001;1157;F;74;A

我一直试图做的是计算这封信的次数" M"出现在其中,并将其添加到计数器

有什么想法吗?

到目前为止我尝试过:

for (int i=0; i<name.length(); i++) { 
    if (name.charAt(i)=='M' ) counter++; 
} 
System.out.println("the string contains " + count + " times the letter M")

3 个答案:

答案 0 :(得分:2)

你应该使用foreach循环。尝试实现这样的事情:

int counter=0;
String[][] array = something;
for(String[] subArray : array)
    for(String string : subArray)
        if(string.toLowerCase().equals("m"))
            counter++;
//Counter has the value of the amount of 'm's in the array

答案 1 :(得分:0)

@mike fischer请检查下面的代码,他们会给你一个数组中“M”的数量。

public class Arraycount {
public static void main(String args[]){
String[] a=new String[5];
a[0]="BG6001;1193;M;63;B+";
a[1]="BG6001;1124;M;41;C";
a[2]="BG6001;1121;F;FA;FA";
a[3]="BG6001;1143;M;26;FA";
a[4]="BG6001;1157;F;74;A";
int count=0;
for(int i=0;i<=a.length-1;i++){

    for(int j=0;j<=a[i].length()-1;j++){   
        char c=a[i].charAt(j);
        if(c=='M'){
            count++;
        }
    }
}
System.out.println("Number of M present in an array is "+count);
}
}

答案 2 :(得分:0)

我的答案非常类似于7H3_H4CK3R的答案,但有一些变化。具体来说,如果一个特定的字母(在这种情况下,“M”)可以出现在字符串中的任何地方,你可以执行以下操作(我为在这里使用C#而不是Java语法道歉,我不是坐在Java前面编译器,但希望差异不会太难遵循):

    private static int Count(string[][] data, char letterToFind)
    {
        int count = 0;

        // Loop over each array
        foreach (string[] array in data)
        {
            // Each array is a collection of strings
            foreach (string str in array)
            {
                // Loop through the characters in each string
                for (int i = 0; i < str.Length; i++)
                {
                    if (str[i] == letterToFind)
                    {
                        count++;
                    }
                }
            }
        }

        return count;
    }

或者,如果你正在寻找整个字符串为“M”的东西,7H3_H4CK3R的答案应该可以解决问题。