dashabushik1
@dashabushik1

Есть ли другой алгоритм решения задачи?

Добрый день!
У меня есть код:
public static void main(String[] args) {
        String verse = "Twinkle, twinkle, little star, \n" +
                "How I wonder what you are. \n" +
                "Up above the world so high, \n" +
                "Like a diamond in the sky.";
        int count = 0;

        String[] words = verse.toLowerCase().split("[\\s.,?!\\d]+");
        for (String word : words) {
            if ((word.startsWith("a")) || (word.startsWith("e")) || (word.startsWith("i"))
                    || (word.startsWith("o")) || (word.startsWith("u")) || (word.startsWith("y"))) {
                count++;
            }
        }
        System.out.println(count);
    }


Как можно решить задачу другим способом, без
((word.startsWith("a")) || (word.startsWith("e")) || (word.startsWith("i"))
                    || (word.startsWith("o")) || (word.startsWith("u")) || (word.startsWith("y")))
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ответы на вопрос 2
@mayton2019
Bigdata Engineer
Ты используешь регулярку для того чтобы делать разделение английского текста на слова.
String[] words = verse.toLowerCase().split("[\\s.,?!\\d]+");

Можно решать другую (обратную) задачу - выделить английские слова которые стартуют с нужных букв.
И посчитать по регулярке количество найденных групп.
Ответ написан
vabka
@vabka
Токсичный шарпист
Если задача "посчитать слова, которые начинаются с буквы", то ты можешь, например, сложить искомые буквы в массив или hashset и делать letters.contains(word[0])
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы