Ajuda com Funções

Pessoal eu tenho duas funções, uma eu uso para ler as linhas do JTextArea e a outra uso para separar os tokens:

Função LerLinha()

[code]public String LerLinha()
{
String texto = txtCodigo.getText(); // armazena o texto de txtCodigo
String linha[] = texto.split("\n");
String varLinha = null;

                int x,y;
                y = linha.length;
                for(x=0;x<=y-1;x++)
                {
                    varLinha = linha[x];
                }
                    return varLinha;
            }[/code]

Função LerPalavra()

[code]public void LerPalavra()
{
String texto = LerLinha();
String token[] = texto.split(" ");
String palavra[] = {“String”, “int”, “char”};
int pos_token = token.length;
int pos_palavra = palavra.length;
int i,j;

            for(i=0;i<=pos_token-1;i++)
            {
                for(j=0;j<=pos_palavra-1;j++)
                {
                    if(token[i].equals(palavra[j]))
                    {
                        txtSaida.setText(txtSaida.getText()+
                                  "posição " + i + ": " + palavra[j] + "\n");
                    }
                }
            }
}[/code]

Só que ele só mostra as palavras da primeira linha
Alguém pode me ajudar?

Qual era sua intenção com este código?

                     for(x=0;x<=y-1;x++)  
                     {  
                         varLinha = linha[x];  
                     }  
                         return varLinha; 

terminar um trabalho de compilador :smiley:

A intenção desse código

1. for(x=0;x<=y-1;x++) 2. { 3. varLinha = linha[x]; 4. } 5. return varLinha;

é para o varLinha receber uma linha e retorná-la

Qual linha você quer ler?

linha por linha do txtCodigo

Pois é, mas seu código despreza todas as linhas, exceto a última. É isso mesmo que você quer fazer?

Não, eu queria que o código armazenava a primeira linha e retornava ela, depois armazenava a segunda e retornava e assim por diante

Ah, mas seu código não faz isso.

Se você quer aprender uma linguagem em que você possa fazer isso desse jeito que você está pensando (ou seja, o “return” manda uma linha de cada vez para o código que o chama), aprenda C#, que ele tem uma palavra-chave chamada “yield” e o conceito de “continuations”. Só que acho que o conceito é um pouco difícil para entender.

Vou dar uma olhada
Obrigado pela ajuda