## The challenge

The vowel substrings in the word `codewarriors` are `o,e,a,io`. The longest of these has a length of 2. Given a lowercase string that has alphabetic characters only (both vowels and consonants) and no spaces, return the length of the longest vowel substring. Vowels are any of `aeiou`.

## The solution in Java code

Option 1:

 ``````1 2 3 4 5 6 7 `````` ``````import static java.util.stream.Stream.of; interface Solution { static int solve(String s) { return of(s.split("[^aeiou]")).mapToInt(String::length).max().orElse(0); } } ``````

Option 2:

 `````` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 `````` ``````import java.util.ArrayList; class Solution{ public static int solve(String s){ var vowels = new ArrayList(); vowels.add('a'); vowels.add('e'); vowels.add('i'); vowels.add('o'); vowels.add('u'); var arr = s.toCharArray(); int max = 0; int counter = 0; for (int i = 0; i < arr.length ; i++) { if (vowels.contains(arr[i])){ counter++; }else{ if (counter>max){ max = counter; } counter = 0; } } if (counter>max){ max = counter; } return max; } } ``````

Option 3:

 `````` 1 2 3 4 5 6 7 8 9 10 11 12 13 `````` ``````class Solution{ public static int solve(String s){ //.. String[] vowelsTable = s.split("[bcdfghjklmnpqrstvwxyz]"); int longuestVowelSubString = 0; for (String mySubString: vowelsTable){ if (mySubString.length()>longuestVowelSubString){ longuestVowelSubString = mySubString.length(); } } return longuestVowelSubString; } } ``````

## Test cases to validate our solution

 `````` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 `````` ``````import org.junit.Test; import static org.junit.Assert.assertEquals; import org.junit.runners.JUnit4; public class SolutionTest{ @Test public void basicTests(){ assertEquals(3,Solution.solve("ultrarevolutionariees")); assertEquals(2,Solution.solve("codewarriors")); assertEquals(3,Solution.solve("suoidea")); assertEquals(1,Solution.solve("strengthlessnesses")); assertEquals(11,Solution.solve("mnopqriouaeiopqrstuvwxyuaeiouaeiou")); } } ``````