gpt4 book ai didi

java - 如何检查数组是否包含特定数量的值?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:00:35 24 4
gpt4 key购买 nike

import java.util.Scanner;

public class CountVowel{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);

获取数组的大小:

        System.out.println("Type how many words will be typed: ");
int input = scan.nextInt();

用字符串值填充数组

        String[] ar1 = new String[input];
for(int i = 0; i < ar1.length; i++){
System.out.println("Type the elements of array with words: ");
ar1[i] = scan.next();
}

程序输出:

        System.out.println( input + " words are typed and " + 
countVowels(ar1) +
" of them contain more than 3 vowels.");
}

计算元音的方法:

    public static int countVowels(String[] ar1){  // this method counts 

int a = 0;
String[] ar2 = new String[]{"a", "e", "i", "u", "y", "o"};
for(int i = 0; i < ar1.length; i++){
for(String s : ar2){
if(ar1[i].toLowerCase().contains(s)){
a++;
}
}
}
return a;
}
}

上面的方法是检查元音,但我不知道如何让它检查是否元音超过3个。

最佳答案

另一种使用 replaceAll 方法的解决方案。主要思想是从 word.length() 中减去没有元音的相同字长。并检查差异。

public static int countVowels(String[] ar1){
int a = 0;
for (String word : ar1) {
int i = word.length() - word.toLowerCase().replaceAll("[aeyiuo]", "").length();
if (i >= 3) {
a++;
}
}
return a;
}

或者您可以按照@pkgajulapalli 的建议使用matches()。用stream api可以很简洁:

long count = Arrays.stream(words)
.filter(s -> s.toLowerCase().matches("(.*[aeyiuo].*){3,}"))
.count();

关于java - 如何检查数组是否包含特定数量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54647395/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com