在java中计算字符串中的元音

在java中计算字符串中的元音,java,Java,我想数一数字符串中每个单词的元音,并打印每个单词的元音数。我只知道如何数一串元音,我试过了。但我要每个单词的元音数。我怎么能把它打印出来 String s="hai hello"; int count=0; for(int i=0;i<s.length();i++) { if(s.charAt(i)=='a'||s.charAt(i)=='e'||s.charAt(i)=='i'||s.charAt(i)=='o'||s.charAt(i)=='u'

我想数一数字符串中每个单词的元音,并打印每个单词的元音数。我只知道如何数一串元音,我试过了。但我要每个单词的元音数。我怎么能把它打印出来

String s="hai hello";
    int count=0;
    for(int i=0;i<s.length();i++)
    {
        if(s.charAt(i)=='a'||s.charAt(i)=='e'||s.charAt(i)=='i'||s.charAt(i)=='o'||s.charAt(i)=='u')
            count++;
    }
    System.out.println(count);
String s=“海你好”;
整数计数=0;

对于(int i=0;i,可以在循环中使用条件:

if (s.charAt(i) == ' ' ) {
  system.out.println(count)
  count = 0;
}

每次看到Black时,它都会打印并设置计数为零。

您可以在循环中使用条件:

if (s.charAt(i) == ' ' ) {
  system.out.println(count)
  count = 0;
}

每次您看到Black时,它都会打印并设置计数为零。

我试图解决您的问题

        String string = "hai hello";
        String[] wordAr = string.split(" ");
        int count = 0;
        for (String s : wordAr) {
            for (int i = 0; i < s.length(); i++) {
                if (s.charAt(i) == 'a' || s.charAt(i) == 'e' || s.charAt(i) == 'i' || s.charAt(i) == 'o' || s.charAt(i) == 'u') {
                    count++;
                }
            }
            System.out.print(count + "\t");
            count = 0;
        }
String=“海你好”;
String[]wordAr=String.split(“”);
整数计数=0;
for(字符串s:wordAr){
对于(int i=0;i
我试图解决你的问题

        String string = "hai hello";
        String[] wordAr = string.split(" ");
        int count = 0;
        for (String s : wordAr) {
            for (int i = 0; i < s.length(); i++) {
                if (s.charAt(i) == 'a' || s.charAt(i) == 'e' || s.charAt(i) == 'i' || s.charAt(i) == 'o' || s.charAt(i) == 'u') {
                    count++;
                }
            }
            System.out.print(count + "\t");
            count = 0;
        }
String=“海你好”;
String[]wordAr=String.split(“”);
整数计数=0;
for(字符串s:wordAr){
对于(int i=0;i
您可以使用

String result = Arrays.asList(string.split(" ")).stream().map(s -> countVowel(s))
        .collect(Collectors.joining(" "));
其中countVowel返回字符串中元音的nr(请参见“pantha istiaque”答案),以获得整个结果

您可以使用

String result = Arrays.asList(string.split(" ")).stream().map(s -> countVowel(s))
        .collect(Collectors.joining(" "));
public static Map<String, Integer> countVowelsByWords(String str) {
    Map<String, Integer> map = new HashMap<>();

    Arrays.stream(str.toLowerCase().split("[^a-z]+"))
          .distinct()
          .forEach(word -> {
              int count = 0;

              for (int i = 0; i < word.length(); i++) {
                  char ch = word.charAt(i);

                  if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
                      count++;
              }

              map.put(word, count);
          });

    return map;
}
其中countVowel返回字符串中元音的nr(请参见“pantha istiaque”答案)以获得整个结果

公共静态映射CountVowelBywords(string str){
public static Map<String, Integer> countVowelsByWords(String str) {
    Map<String, Integer> map = new HashMap<>();

    Arrays.stream(str.toLowerCase().split("[^a-z]+"))
          .distinct()
          .forEach(word -> {
              int count = 0;

              for (int i = 0; i < word.length(); i++) {
                  char ch = word.charAt(i);

                  if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u')
                      count++;
              }

              map.put(word, count);
          });

    return map;
}
Map Map=newhashmap(); Arrays.stream(str.toLowerCase().split(“[^a-z]+”)) .distinct() .forEach(word->{ 整数计数=0; for(int i=0;i
公共静态映射countVouelsBywords(字符串str){
Map Map=newhashmap();
Arrays.stream(str.toLowerCase().split(“[^a-z]+”))
.distinct()
.forEach(word->{
整数计数=0;
for(int i=0;i
您可以尝试以下代码:

import java.util.ArrayList;
import java.util.List;

public class Sam {
public static void main(String... args) {
    String str="hai hello";
    List<Integer> list=new ArrayList<>();
    String[] s=str.split(" ");
    for(int i=0;i<s.length;i++) {
         list.add(a(s[i])); 
    }
    System.out.println(list); //output : [2,2]      
}

static int a(String s) {
    int cou=0;
    for(int i=0;i<s.length();i++) {
        if(s.charAt(i)=='a'||s.charAt(i)=='e'||s.charAt(i)=='i'||s.charAt(i)=='o'||s.charAt(i)=='u') {
            cou++;
        }
    }
    return cou;
 }
}
import java.util.ArrayList;
导入java.util.List;
公共类Sam{
公共静态void main(字符串…参数){
String str=“海你好”;
列表=新的ArrayList();
字符串[]s=str.split(“”);

对于(int i=0;i您可以尝试以下代码:

import java.util.ArrayList;
import java.util.List;

public class Sam {
public static void main(String... args) {
    String str="hai hello";
    List<Integer> list=new ArrayList<>();
    String[] s=str.split(" ");
    for(int i=0;i<s.length;i++) {
         list.add(a(s[i])); 
    }
    System.out.println(list); //output : [2,2]      
}

static int a(String s) {
    int cou=0;
    for(int i=0;i<s.length();i++) {
        if(s.charAt(i)=='a'||s.charAt(i)=='e'||s.charAt(i)=='i'||s.charAt(i)=='o'||s.charAt(i)=='u') {
            cou++;
        }
    }
    return cou;
 }
}
import java.util.ArrayList;
导入java.util.List;
公共类Sam{
公共静态void main(字符串…参数){
String str=“海你好”;
列表=新的ArrayList();
字符串[]s=str.split(“”);

对于(inti=0;i,只是为了展示另一个简单的概念……使用带有(RegEx)的方法来计算单词或字符串中的元音数

方法中使用的正则表达式(
“(?i)[^aeiou]”
)基本上告诉方法用空字符串替换所有字符()这不是aeiou,不管字母大小写如何。然后我们取剩余的字符数(所有元音)作为单词或字符串中元音数的计数,因为它们是唯一未被替换的字符:

String a = "This sentence has vowels";
int vowelCount = 0;
String[] words = a.split("\\s+");
for (int i = 0; i < words.length; i++) {
    vowelCount = words[i].replaceAll("(?i)[^aeiou]", "").length();
    System.out.println("Word #" + (i + 1) + " [" + words[i] + 
                       "] contains " + vowelCount + " vowels.");
}

只是为了展示另一个简单的概念…使用带有(RegEx)的方法来计算单词或字符串中的元音数

方法中使用的正则表达式(
“(?i)[^aeiou]”
)基本上告诉方法用空字符串替换所有字符()这不是aeiou,不管字母大小写如何。然后我们取剩余的字符数(所有元音)作为单词或字符串中元音数的计数,因为它们是唯一未被替换的字符:

String a = "This sentence has vowels";
int vowelCount = 0;
String[] words = a.split("\\s+");
for (int i = 0; i < words.length; i++) {
    vowelCount = words[i].replaceAll("(?i)[^aeiou]", "").length();
    System.out.println("Word #" + (i + 1) + " [" + words[i] + 
                       "] contains " + vowelCount + " vowels.");
}

你可以用正则表达式来表示

String string = "hai hello";
String[] wordAr = string.split(" ");
for (String s : wordAr) {
    System.out.println(s.replaceAll("(?i)[^aeiouy]", "").length());
}

(?i)将使字符不区分大小写

您可以使用正则表达式来

String string = "hai hello";
String[] wordAr = string.split(" ");
for (String s : wordAr) {
    System.out.println(s.replaceAll("(?i)[^aeiouy]", "").length());
}

(?i)将使字符不区分大小写

可能会帮助您给定的代码有什么问题?请阅读“如何创建”。然后使用链接改进您的问题(不要通过注释添加更多信息)。否则,我们无法回答您的问题并帮助您。输出“12”…对吗?…单词1有两个元音(a,i)单词2有两个元音(e,o)。首先,找到一种方法,在
String[]words
中拆分
String
。然后,你所要做的就是定义一个
char[]voxels
来简化你的测试。可能会帮你解决给定代码的问题吗?请阅读“如何创建”。然后使用链接来改进你的问题(不要通过评论添加更多信息)。否则我们无法回答您的问题并帮助您。输出“12”…对吗?…单词1有两个元音(a,i),单词2有两个元音(e,o)。首先,找到一种方法在
字符串[]单词中拆分
字符串
。然后,您所要做的就是定义一个
字符[]元音
可以简化测试。