считать гласные в строке в Java - PullRequest
0 голосов
/ 24 июня 2019

Я хочу посчитать гласные в каждом слове в строке и вывести количество гласных для каждого слова. Я просто знаю, как считать все гласные в строке, и я попробовал это. Но я хочу количество гласных для каждого слова. Как я могу распечатать это?

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

Если вход"привет", то Ожидаемый вывод будет "1 2".

Ответы [ 6 ]

1 голос
/ 24 июня 2019

я пытаюсь решить вашу проблему

        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;
        }
0 голосов
/ 24 июня 2019

Просто чтобы показать еще одну простую концепцию ... Используйте метод String # replaceAll () с регулярным выражением (RegEx) для подсчета количества гласных в слове или строке,

Регулярное выражение ("(?i)[^aeiou]"), используемое в методе String # replaceAll () , в основном говорит методу о замене всех символов пустой строкой ( "" )это не a , e , i , o или u независимо от буквенного дела.Затем мы берем оставшееся количество символов (которое будет всеми гласными) в качестве числа для числа гласных в слове или строке, поскольку они были единственными символами, которые были не заменены:

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

Вывод на консоль выглядит следующим образом:

Word #1 [This] contains 1 vowels.
Word #2 [sentence] contains 3 vowels.
Word #3 [has] contains 1 vowels.
Word #4 [vowels] contains 2 vowels.
0 голосов
/ 24 июня 2019

Вы можете попробовать следующий код:

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;
 }
}
0 голосов
/ 24 июня 2019
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;
}
0 голосов
/ 24 июня 2019

Вы можете использовать

String result = Arrays.asList(string.split(" ")).stream().map(s -> countVowel(s))
        .collect(Collectors.joining(" "));

где countVowel возвращает nr гласных в строке (см. Ответ "pantha istiaque"), чтобы получить полный результат

0 голосов
/ 24 июня 2019

Вы можете использовать условие в своих циклах:

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

оно будет печатать и устанавливать ноль каждый раз, когда вы видите бланк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...