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));
}