Analisando uma fórmula química

Estou tentando escrever um método para um aplicativo que usa uma fórmula química como "CH3COOH" e retorna algum tipo de coleção cheia de seus símbolos.

CH3COOH retornaria [C, H, H, H, C, O, O, H]

Eu já tenho algo que está meio que funcionando, mas é muito complicado e usa muito código com muitas estruturas if-else aninhadas.

Existe uma maneira de fazer isso usando algum tipo de expressão regular com String.split ou talvez em algum outro código simples brilhante?

questionAnswers(5)

yourAnswerToTheQuestion