Separar Strings

Buenas galera!

Preciso inserir uma função em um TextField (f(x) x³+3x+18 por exemplo… acontece que essas funções não tem um padrão) e separar exatamente todos os operadores, exponenciais e variáveis x, y etc…
por mod, div consigo separar quando há somente números isso depois de convertido p/ Int/float… mas e quando há caracteres entre números? é possível fazer essa separação!!! já procurei muito, e não acho nada sobre o assunto.

agradeço muito!!!
abraço!

Já tentou StringTokenizer, do pacote java.util?

StringTokenizer st = new StringTokenizer(expressao, "+-*/", true);

Não sei se dá pra fazer com split(), já que são vários operadores.

StringTokenizer eh a saida amigo…
com ele vc quebra a string ond quiser…
quebre nos operadores… ira sobrar soh as literais e os numericos, e entaum vc trata… um por um

acho q eh a melhor saida