diff --git a/src/main/java/com/thealgorithms/strings/CheckVowels.java b/src/main/java/com/thealgorithms/strings/CheckVowels.java index 6121812a1..a683a5065 100644 --- a/src/main/java/com/thealgorithms/strings/CheckVowels.java +++ b/src/main/java/com/thealgorithms/strings/CheckVowels.java @@ -1,19 +1,16 @@ package com.thealgorithms.strings; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + /** * Vowel Count is a system whereby character strings are placed in order based * on the position of the characters in the conventional ordering of an * alphabet. Wikipedia: https://en.wikipedia.org/wiki/Alphabetical_order */ -class CheckVowels { - - public static void main(String[] args) { - assert !hasVowels("This is a strings"); - assert hasVowels("Hello World"); - assert hasVowels("Java is fun"); - assert !hasVowels("123hi"); - assert hasVowels("Coding vs Programming"); - } +public class CheckVowels { + private static final Set VOWELS = new HashSet<>(Arrays.asList('a', 'e', 'i', 'o', 'u')); /** * Check if a string is has vowels or not @@ -22,11 +19,7 @@ class CheckVowels { * @return {@code true} if given string has vowels, otherwise {@code false} */ public static boolean hasVowels(String input) { - if (input.matches("[AEIOUaeiou]")) { - countVowels(input); - return true; - } - return false; + return countVowels(input) > 0; } /** @@ -34,20 +27,16 @@ class CheckVowels { * * @param input a string prints the count of vowels */ - public static void countVowels(String input) { - input = input.toLowerCase(); - int count = 0; - int i = 0; - while (i < input.length()) { - if (input.charAt(i) == 'a' - || input.charAt(i) == 'e' - || input.charAt(i) == 'i' - || input.charAt(i) == 'o' - || input.charAt(i) == 'u') { - count++; - } - i++; + public static int countVowels(String input) { + if (input == null) { + return 0; } - System.out.println(count); + int cnt = 0; + for (char c : input.toLowerCase().toCharArray()) { + if (VOWELS.contains(c)) { + ++cnt; + } + } + return cnt; } }