Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 搜索字符串数组_Java_Arrays - Fatal编程技术网

Java 搜索字符串数组

Java 搜索字符串数组,java,arrays,Java,Arrays,例如,如果我有一个字符串 String [] grades = {"AAAB","ABAA","AABA"}; 我想搜索字符串数组,看看是否有学生获得了3个或更多的A 我知道,如果字符串数组包含以下特定单词,则可以进行搜索: Arrays.asList(grades).contains("AAA"); 但是,如果我们有类似AABA的东西,这是行不通的。有什么办法可以解决这个问题吗?我还想让它适用于所有等级,而不仅仅是A…(A、B、C、D等)。您可以迭代字符串并计算给定等级的出现次数:

例如,如果我有一个字符串

String [] grades = {"AAAB","ABAA","AABA"};
我想搜索字符串数组,看看是否有学生获得了3个或更多的A

我知道,如果字符串数组包含以下特定单词,则可以进行搜索:

Arrays.asList(grades).contains("AAA");

但是,如果我们有类似AABA的东西,这是行不通的。有什么办法可以解决这个问题吗?我还想让它适用于所有等级,而不仅仅是A…(A、B、C、D等)。

您可以迭代字符串并计算给定等级的出现次数:

    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

我认为这将有助于:

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.tocharray()
。这将为您提供字符串中的字符数组,以便您可以循环并计算数组中的等级数。

您需要的是迭代给定字符串并计算等级出现的次数

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;
}
public int countGrades(字符串级别,字符g){
int c=0;
对于(int i=0;i

此外,您应该考虑使用字符数组而不是字符串。

存储级别作为字符数组而不是字符串。您可以按照Anubian Noob所说的做,或者只需制作自己的自定义方法。遍历数组,然后遍历字符串的每个字符,同时使用count variable循环遍历数组并在每个索引处检查字符串。不要试图比你的家庭作业聪明。你必须阅读正则表达式
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));
    }