Basicamente tenho que fazer um analisador léxico e sintático a partir de um arquivo em Java, a construção do analisador léxico é ler caracter a caracter e depois identificar quem são tokens, palavras reservadas e por ai vai. Essa parte é tranquila, porem estou com um problema na hora inserir os dados na LinkedList que ele está inserindo espaços (algo que não desejo), mesmo com o tratamento para evitar essa inserção ela continua persistindo, alguém poderia me dar uma dica ou mostrar onde estou fazendo errado.
Arquivo easy.txt
if (x == 0 ) {
x = 10;
a = b;
c = 2;
}
Arquivo Java
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Iterator;
import java.util.LinkedList;
public class Leitura {
private File arquivo_txt;
private FileReader fileReader;
private char caracter;
LinkedList <String> listaC = new LinkedList<String>();
private String cadeia;
Iterator itera = listaC.iterator();
public void start() {
this.arquivo_txt = new File("C:\\easy.txt");
BufferedReader lendo = null;
try {
this.fileReader = new FileReader(arquivo_txt);
lendo = new BufferedReader(this.fileReader);
while (lendo.ready()) {
caracter = (char)lendo.read(); // pega a linha e converte pra caracter
if (caracter == ' ' || caracter == '\n'){//caso leia espaço ou pula linha ignora
continue;
}
else{
cadeia = String.valueOf(caracter);//obtém o valor completo associado
listaC.add(cadeia);// adiciona na lista o caracter
System.out.print(caracter);//imprime um a um
}//else
}//while (lendo.ready())
System.out.println("\n");
System.out.println(listaC);
} catch (Exception e) {
}
}//final do metodo start
}//final da classe
O erro que falo é o seguinte, o espaço antes dos caracteres e a inserção de espaços em branco
run:
if(x==0){x=10;a=b;c=2;}
[i, f, (, x, =, =, 0, ), {, , x, =, 1, 0, ;, , a, =, b, ;, , c, =, 2, ;, , }]
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)