例如,如果我有一个字符串
String [] grades = {"AAAB","ABAA","AABA"};
我想搜索字符串数组,看看是否有学生达到3个或更多A.
我知道您可以搜索字符串数组是否包含特定的单词,如:
Arrays.asList(grades).contains("AAA");
但如果我们有像AABA这样的东西有什么方法可以解决这个问题吗?此外,我想让它适用于所有等级而不仅仅是A ..(A,B,C,D等)。
答案 0 :(得分:0)
您可以遍历字符串并计算给定成绩的出现次数:
public static void main(String[] args)
{
String [] grades = {"AAAB","ABAA","AABA"};
System.out.println(countOccurences(grades[0], 'A'));
}
public static int countOccurences(String grades, char gradeToMatch )
{
int count = 0;
for(char grade : grades.toCharArray())
{
if(grade == gradeToMatch)
++count;
}
return count;
}
输出 3
答案 1 :(得分:0)
我认为这会有所帮助:
public static void main(final String[] args) {
final String [] grades = {"AAAB","ABAA","AABA"};
for (final String string : grades) {
final char[] charArray = string.toCharArray();
int count = 0;
for (final char c : charArray) {
if( c == 'A' ) {
count++;
}
}
if(count >= 3) {
System.out.println("3+ A Grades");
}
}
}
这里最重要的是电话string.toCharArray()
。这样就可以从字符串中获得一个字符数组,这样你就可以遍历并计算数组中A级的数量。
答案 2 :(得分:0)
您需要的是迭代给定的字符串并计算成绩出现的次数。
public int countGrades(String grades, char g) {
int c = 0;
for (int i = 0; i < grades.length; i++)
if (grades.chatAt(i) == g)
c++;
return c;
}
此外,您应该考虑使用字符数组而不仅仅是字符串。
答案 3 :(得分:0)
public static boolean checkGrades(String grades, char someGrade, int times) {
int counter=0;
for (int k=0;k<grades.length();k++) {
if (grades.charAt(k)==someGrade) counter++;
if (counter>=times) return true;
}
return false;
}
当然,只有当你的成绩由一个角色组成时,这才有效。您可以将该函数应用于整个数组:
for (String g : grades) {
System.out.println(checkGrades(g, 'A', 3));
}