所以我基本上有一个看起来像这样的数组:
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")
答案 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的答案应该可以解决问题。