Ajuda com Funções

9 respostas
P

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()
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;
                }
Função LerPalavra()
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");
                        }
                    }
                }
    }

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

9 Respostas

T

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

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

terminar um trabalho de compilador :smiley:

P

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

T

Qual linha você quer ler?

P

linha por linha do txtCodigo

T

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

P

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

T

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.

P

Vou dar uma olhada
Obrigado pela ajuda

Criado 3 de fevereiro de 2009
Ultima resposta 3 de fev. de 2009
Respostas 9
Participantes 2