Funcionalidade

Q: Posso inserir mais funcionalidade que a que é pedida no enunciado?
R: Não. A implementação deve cumprir os requisitos do enunciado sem omitir, nem acrescentar, nenhum aspecto.

Sobre o String split

Q: O método split da classe String parece não funcionar quando chamado com o argumento "|". Qual é o problema?

R: Este método aceita uma expressão regular e a barra vertical faz parte da sintaxe protegida, pelo que deve ser escrita como "\\|". Dessa forma o split já é correctamente efectuado.