Sort Vowels in a String

Medium
Watch on YouTube ↗

Solution

class Solution {
    public String sortVowels(String s) {
        
        List<Character> list = new ArrayList<>();

        for(int i=0; i<s.length(); i++) {

            if(isVowel(s.charAt(i)))
                list.add(s.charAt(i));

        }

        Collections.sort(list); // on the basis of ASCII

        StringBuilder sb = new StringBuilder();

        int index = 0;

        for(int i=0; i<s.length(); i++) {
            char ch = s.charAt(i);
            if(isVowel(ch)) {
                sb.append(list.get(index++));
            }
            else sb.append(ch);
        }

        return sb.toString();
    }

    private boolean isVowel(char ch) {
        return "aieouAEIOU".indexOf(ch)!=-1;
    }
}

/*
Example Explaination:

lEetcOde

A-65 a-97 // Ascii values of the chars
EeOe // list of all the vowels

EOee // sorted list

lEOtcede // answer



*/