vc quer separar em tokens...ok... mais o que que define aonde q termina seu token e começa o seguinte? espaço?
tipo, se eu nao me engano tem um metodo de String que joga em um array os tokens da string usada separando por espaço, não me lembro o nome.
vc tb pode usar algum codigo seu, exemplo de algo bem simples:
String frase="aaa bbb ccc";
String[] tokens=new String[50];
int tamanho=frase.length();
int comecoToken=0, fimToken=0, j=0;
for (int i=0;i<tamanho;i++){
if (frase.substring(i,i+1).equals(" "){//esse if verifica se o caracter é um espaço
fimtoken=i;//to usando o caracter do espaço pois ele é um depois, do final, como o metodo usado abaixo exige
tokens[j]=frase.substring(comecoToken, fimtoken);
inicioToken=i+1;//se eu pegasse i eu incluiria espaço
}
}
esse codigo não é dos melhores, mais didaticamente acho bom pq é facil de intender, o problema é que se digita 2 espaços zoa ele, coloca espaço no começo zoa ele... eu tinha feito um lexico a uns dias atras tratando isso tudo, e jogando os tokens numa arrayList, mais o codigo fico meio feinho, axo da pra intende numa boa apersar disso...
bom...segue ele ai:
boolean comT=false, palavraExiste=false;
int comecoT=0;
String saida="";
ArrayList<String> token=new ArrayList();
for (int i=0;i<frase.length();i++){
//comT controla se o token começo, começa se
//o caracter sendo verificado não for espaço
if (comT==false){
if (!frase.substring(i, i+1).equals(" ")){
comecoT=i;
comT=true;
}
//se cair no else é pq ja começo o token, começa a le-lo
}else{
//esse if serve pra descobrir que o token acabou (encontrando espaço
//no final do token ou o proprio final da frase, e coloca o token
//dentro do arrayList token, depois diz aonde começa o proximo token no if acima
//e reseta a comToken pra nao pega token enquanto nao ver o começo dele
if (frase.substring(i, i+1).equals(" ")){
token.add(frase.substring(comecoT, i));
comecoT=i+1;
comT=false;
}
}
}
if (!(comecoT==frase.length()))
token.add(frase.substring(comecoT));
//só pra demonstrar que separo ok os tokens da frase
for (int i=0;i<token.size();i++){
System.out.println(token.get(i));
}
essa parte ai é só parte do metodo, a responsavel por fazer o que vc falo, separa em tokens...ai com isso vc pega o conteudo do seu scaner e joga nessa String frase ai q eu usei no for...